`
kobexing933
  • 浏览: 120286 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

第二章 一个简单的Login 应用程序

阅读更多

第一节 需求定义

简单的需求如下图

<group id="_x0000_s1026" style="WIDTH: 423pt; HEIGHT: 405pt; mso-position-horizontal-relative: char; mso-position-vertical-relative: line" coordsize="8460,8100" coordorigin="1702,1985" editas="canvas"><lock aspectratio="t" v:ext="edit"></lock><shapetype id="_x0000_t75" coordsize="21600,21600" stroked="f" filled="f" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t" o:spt="75"><stroke joinstyle="miter"></stroke><formulas><f eqn="if lineDrawn pixelLineWidth 0"></f><f eqn="sum @0 1 0"></f><f eqn="sum 0 0 @1"></f><f eqn="prod @2 1 2"></f><f eqn="prod @3 21600 pixelWidth"></f><f eqn="prod @3 21600 pixelHeight"></f><f eqn="sum @0 0 1"></f><f eqn="prod @6 1 2"></f><f eqn="prod @7 21600 pixelWidth"></f><f eqn="sum @8 21600 0"></f><f eqn="prod @7 21600 pixelHeight"></f><f eqn="sum @10 21600 0"></f></formulas><path o:connecttype="rect" gradientshapeok="t" o:extrusionok="f"></path><lock aspectratio="t" v:ext="edit"></lock></shapetype><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><shape id="_x0000_s1027" style="LEFT: 1702px; WIDTH: 8460px; POSITION: absolute; TOP: 1985px; HEIGHT: 8100px" stroked="t" o:preferrelative="f" type="#_x0000_t75"><fill o:detectmouseclick="t"></fill><path o:connecttype="none" o:extrusionok="t"></path><lock v:ext="edit" text="t"></lock></shape></p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><shapetype id="_x0000_t202" coordsize="21600,21600" path="m,l,21600r21600,l21600,xe" o:spt="202"><stroke joinstyle="miter"></stroke><path o:connecttype="rect" gradientshapeok="t"></path></shapetype><shape id="_x0000_s1028" style="LEFT: 1702px; WIDTH: 8280px; POSITION: absolute; TOP: 7925px; HEIGHT: 1800px" stroked="f" type="#_x0000_t202"><textbox inset="5.85pt,.7pt,5.85pt,.7pt"><table cellspacing="0" cellpadding="0" width="100%"><tbody><tr> <td style="BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; BORDER-TOP-COLOR: #d4d0c8; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8"> <div> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><font size="3"><span lang="EN-US" style="FONT-FAMILY: 宋体">1</span><span lang="EN-US" style="mso-fareast-font-family: 宋体"><font face="Garamond"> </font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Garamond; mso-hansi-font-family: Garamond">用户处在</span><span lang="EN-US" style="mso-fareast-font-family: 宋体"><font face="Garamond">Welcome.jsp </font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Garamond; mso-hansi-font-family: Garamond">页面,点击登录连接到达</span><span lang="EN-US" style="mso-fareast-font-family: 宋体"><font face="Garamond">Login.jsp</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Garamond; mso-hansi-font-family: Garamond">页面</span><span lang="EN-US" style="mso-fareast-font-family: 宋体"><p></p></span></font></p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><font size="3"><span lang="EN-US" style="mso-fareast-font-family: 宋体"><font face="Garamond">2 </font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Garamond; mso-hansi-font-family: Garamond">在</span><span lang="EN-US" style="mso-fareast-font-family: 宋体"><font face="Garamond">Login.jsp</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Garamond; mso-hansi-font-family: Garamond">输入用户名密码,点击登陆按钮,转到</span><span lang="EN-US" style="mso-fareast-font-family: 宋体"><font face="Garamond">LoginAction</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Garamond; mso-hansi-font-family: Garamond">处理</span><span lang="EN-US" style="mso-fareast-font-family: 宋体"><p></p></span></font></p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><font size="3"><span lang="EN-US" style="mso-fareast-font-family: 宋体"><font face="Garamond">3.1 </font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Garamond; mso-hansi-font-family: Garamond">在登陆成功的情况下,再回到</span><span lang="EN-US" style="mso-fareast-font-family: 宋体"><font face="Garamond">Welcome.jsp</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Garamond; mso-hansi-font-family: Garamond">页面,在页面上显示登录信息</span><span lang="EN-US" style="mso-fareast-font-family: 宋体"><p></p></span></font></p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><font size="3"><span lang="EN-US" style="mso-fareast-font-family: 宋体"><font face="Garamond">3.2 </font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Garamond; mso-hansi-font-family: Garamond">在登陆失败的情况下,返回到</span><span lang="EN-US" style="mso-fareast-font-family: 宋体"><font face="Garamond">Login.jsp</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Garamond; mso-hansi-font-family: Garamond">显示登陆错误信息</span><span lang="EN-US" style="mso-fareast-font-family: 宋体"><p></p></span></font></p> </div> </td> </tr></tbody></table></textbox></shape><group id="_x0000_s1029" style="LEFT: 2962px; WIDTH: 6299px; POSITION: absolute; TOP: 1985px; HEIGHT: 5581px" coordsize="6299,5581" coordorigin="2962,1985"><group id="_x0000_s1030" style="LEFT: 2962px; WIDTH: 6299px; POSITION: absolute; TOP: 1985px; HEIGHT: 5581px" coordsize="6299,5581" coordorigin="2962,1985"><group id="_x0000_s1031" style="LEFT: 2962px; WIDTH: 1979px; POSITION: absolute; TOP: 2885px; HEIGHT: 1981px" coordsize="1685,1697" coordorigin="2741,8106"><rect id="_x0000_s1032" style="LEFT: 2741px; WIDTH: 1685px; POSITION: absolute; TOP: 8106px; HEIGHT: 1697px" alt=""><textbox inset="5.85pt,.7pt,5.85pt,.7pt"><font size="3"></font></textbox></rect><shape id="_x0000_s1033" style="LEFT: 2894px; WIDTH: 1378px; POSITION: absolute; TOP: 8415px; HEIGHT: 308px" stroked="f" type="#_x0000_t202"><textbox style="mso-next-textbox: #_x0000_s1033" inset="5.85pt,.7pt,5.85pt,.7pt"><table cellspacing="0" cellpadding="0" width="100%"><tbody><tr> <td style="BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; BORDER-TOP-COLOR: #d4d0c8; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8"> <div> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US" style="FONT-FAMILY: 宋体"><font size="3">Welcome.jsp</font></span></p> </div> </td> </tr></tbody></table></textbox></shape></group><group id="_x0000_s1034" style="LEFT: 7282px; WIDTH: 1979px; POSITION: absolute; TOP: 2885px; HEIGHT: 1981px" coordsize="1684,1698" coordorigin="5498,8106"><rect id="_x0000_s1035" style="LEFT: 5498px; WIDTH: 1684px; POSITION: absolute; TOP: 8106px; HEIGHT: 1698px"><textbox inset="5.85pt,.7pt,5.85pt,.7pt"><font size="3"></font></textbox></rect><shape id="_x0000_s1036" style="LEFT: 5651px; WIDTH: 1378px; POSITION: absolute; TOP: 8415px; HEIGHT: 308px" stroked="f" type="#_x0000_t202"><textbox style="mso-next-textbox: #_x0000_s1036" inset="5.85pt,.7pt,5.85pt,.7pt"><table cellspacing="0" cellpadding="0" width="100%"><tbody><tr> <td style="BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; BORDER-TOP-COLOR: #d4d0c8; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8"> <div> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US" style="FONT-FAMILY: 宋体"><font size="3">Login.jsp</font></span></p> </div> </td> </tr></tbody></table></textbox></shape></group><group id="_x0000_s1037" style="LEFT: 3862px; WIDTH: 4320px; POSITION: absolute; TOP: 1985px; HEIGHT: 900px" coordsize="3217,771" coordorigin="4119,7952"><line id="_x0000_s1038" style="POSITION: absolute; flip: y" from="4119,8261" to="4119,8723"><font size="3"></font></line><line id="_x0000_s1039" style="POSITION: absolute" from="4119,8261" to="7336,8261"><font size="3"></font></line><line id="_x0000_s1040" style="POSITION: absolute" from="7336,8261" to="7336,8723"><stroke endarrow="block"><font size="3"></font></stroke></line><shape id="_x0000_s1041" style="LEFT: 5038px; WIDTH: 1074px; POSITION: absolute; TOP: 7952px; HEIGHT: 309px" stroked="f" type="#_x0000_t202"><textbox style="mso-next-textbox: #_x0000_s1041" inset="5.85pt,.7pt,5.85pt,.7pt"><table cellspacing="0" cellpadding="0" width="100%"><tbody><tr> <td style="BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; BORDER-TOP-COLOR: #d4d0c8; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8"> <div> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><font size="3"><span lang="EN-US" style="FONT-FAMILY: 宋体">1 </span><span style="FONT-FAMILY: 宋体">开始登陆</span><span lang="EN-US" style="mso-fareast-font-family: 宋体"><p></p></span></font></p> </div> </td> </tr></tbody></table></textbox></shape></group><rect id="_x0000_s1042" style="LEFT: 4942px; WIDTH: 1980px; POSITION: absolute; TOP: 5585px; HEIGHT: 1981px"><textbox inset="5.85pt,.7pt,5.85pt,.7pt"><font size="3"></font></textbox></rect><group id="_x0000_s1043" style="LEFT: 6922px; WIDTH: 1260px; POSITION: absolute; TOP: 4863px; HEIGHT: 1442px" coordsize="1260,1442" coordorigin="6922,4863"><line id="_x0000_s1044" style="POSITION: absolute" from="8180,4863" to="8180,6303"><font size="3"></font></line><line id="_x0000_s1045" style="POSITION: absolute; flip: x" from="6922,6305" to="8182,6305"><stroke endarrow="block"><font size="3"></font></stroke></line></group><group id="_x0000_s1046" style="LEFT: 3862px; WIDTH: 1080px; POSITION: absolute; TOP: 4865px; HEIGHT: 1440px" coordsize="1080,1440" coordorigin="3862,4865"><line id="_x0000_s1047" style="POSITION: absolute; flip: x" from="3862,6305" to="4942,6305"><font size="3"></font></line><line id="_x0000_s1048" style="POSITION: absolute; flip: y" from="3862,4865" to="3862,6305"><stroke endarrow="block"><font size="3"></font></stroke></line></group><shape id="_x0000_s1049" style="LEFT: 7460px; WIDTH: 1260px; POSITION: absolute; TOP: 6483px; HEIGHT: 360px" stroked="f" type="#_x0000_t202"><textbox inset="5.85pt,.7pt,5.85pt,.7pt"><table cellspacing="0" cellpadding="0" width="100%"><tbody><tr> <td style="BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; BORDER-TOP-COLOR: #d4d0c8; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8"> <div> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><font size="3"><span lang="EN-US" style="FONT-FAMILY: 宋体">2 </span><span style="FONT-FAMILY: 宋体">登陆</span></font></p> </div> </td> </tr></tbody></table></textbox></shape><shape id="_x0000_s1050" style="LEFT: 2962px; WIDTH: 1619px; POSITION: absolute; TOP: 6485px; HEIGHT: 360px" stroked="f" type="#_x0000_t202"><textbox inset="5.85pt,.7pt,5.85pt,.7pt"><table cellspacing="0" cellpadding="0" width="100%"><tbody><tr> <td style="BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; BORDER-TOP-COLOR: #d4d0c8; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8"> <div> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><font size="3"><span lang="EN-US" style="FONT-FAMILY: 宋体">3.1</span><span style="FONT-FAMILY: 宋体">登陆成功</span></font></p> </div> </td> </tr></tbody></table></textbox></shape><group id="_x0000_s1051" style="LEFT: 5842px; WIDTH: 1440px; POSITION: absolute; TOP: 4145px; HEIGHT: 1440px" coordsize="1440,1440" coordorigin="5842,4145"><line id="_x0000_s1052" style="POSITION: absolute; flip: y" from="5842,4145" to="5842,5585"><font size="3"></font></line><line id="_x0000_s1053" style="POSITION: absolute" from="5842,4145" to="7282,4145"><stroke endarrow="block"><font size="3"></font></stroke></line></group><shape id="_x0000_s1054" style="LEFT: 5662px; WIDTH: 1260px; POSITION: absolute; TOP: 3605px; HEIGHT: 360px" stroked="f" type="#_x0000_t202"><textbox inset="5.85pt,.7pt,5.85pt,.7pt"><table cellspacing="0" cellpadding="0" width="100%"><tbody><tr> <td style="BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; BORDER-TOP-COLOR: #d4d0c8; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8"> <div> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><font size="3"><span lang="EN-US" style="FONT-FAMILY: 宋体">3.2</span><span style="FONT-FAMILY: 宋体">登陆失败</span></font></p> </div> </td> </tr></tbody></table></textbox></shape></group><shape id="_x0000_s1055" style="LEFT: 5122px; WIDTH: 1621px; POSITION: absolute; TOP: 5944px; HEIGHT: 541px" stroked="f" type="#_x0000_t202"><textbox style="mso-next-textbox: #_x0000_s1055" inset="5.85pt,.7pt,5.85pt,.7pt"><table cellspacing="0" cellpadding="0" width="100%"><tbody><tr> <td style="BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; BORDER-TOP-COLOR: #d4d0c8; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8"> <div> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US" style="FONT-FAMILY: 宋体"><font size="3">LoginAction</font></span></p> </div> </td> </tr></tbody></table></textbox></shape></group></p> <wrap type="none"></wrap><anchorlock></anchorlock></group>

第二节 使用maven建立基本开发结构

使用如下命令建立Struts2 应用程序框架结构

mvn archetype:create

-DgroupId=com.jpleasure

-DartifactId=login

-DarchetypeGroupId=org.apache.struts -DarchetypeArtifactId=struts2-archetype-starter

-DarchetypeVersion=<chsdate w:st="on" year="1899" month="12" day="30" islunardate="False" isrocdate="False">2.0.5</chsdate>-SNAPSHOT -DremoteRepositories=http://people.apache.org/repo/m2-snapshot-repository

目录说明

生成的Struts2开发框架目录满足一般的maven项目,主要由以下目录组成:

src

├─main 源代码目录

├─java java代码

├─resources 资源文件等

└─webapp Web目录

├─jsp JSP目录

├─styles CSS目录

└─WEB-INF WEB-INF目录

└─test 测试代码目录

├─java java代码

└─resources 资源文件等

重要文件:

src\main\resources

applicationContext.xml Spring配置文件

log4j.properties log4j配置文件

struts.properties struts参数文件

struts.xml struts配置文件

xwork-conversion.properties xwork参数文件

src\main\webapp\WEB-INF

decorators.xml

dwr.xml DWR配置文件

sitemesh.xml SiteMesh配置文件

web.xml Web部署描述文件

进入工程目录(login目录)使用如下命令建立Eclipse工程文件

mvn eclipse:eclipse

使用如下命令打包工程

mvn package

应用程序打包完成之后可以再login\target目录中看到login.war文件,这个文件就是最终的成果文件

使用如下命令运行应用程序

mvn jetty:run

也可以将login.war拷贝到tomcatwebapps目录下来运行struts2应用程序。

打开IE在浏览器中输入:

http://localhost:8080/login

可以看到如下画面

<shape id="_x0000_i1026" style="WIDTH: 424.5pt; HEIGHT: 298.5pt" type="#_x0000_t75"><imagedata o:title="" src="file:///C:%5CDOCUME~1%5Cmazhao%5CLOCALS~1%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_image002.png"></imagedata></shape>

说明自动生成的框架已经可以运行。

第三节 补充Login功能

下面我们来完成login功能

首先将login工程导入到Eclipse

之后建立在src\main\java目录中建立LoginAction类,代码清单如下:

package com.jpleasure.login.action;

import javax.servlet.http.HttpSession;

import com.opensymphony.xwork2.ActionSupport;

import org.apache.struts2.ServletActionContext;

public class LoginAction extends ActionSupport {

private String name;

private String password;

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public String getPassword() {

return password;

}

public void setPassword(String password) {

this.password = password;

}

public String forward() throws Exception {

return SUCCESS;

}

@Override

public String execute() throws Exception {

if("admin".equals(name)) {

HttpSession session = ServletActionContext.getRequest().getSession();

session.setAttribute("name", name);

return SUCCESS;

} else {

return INPUT;

}

}

}

Action具有以下特点:

1 ActionSupport继承而来。

2 包含一些属性和gettersetter方法,这些属性用来保存客户端传递到服务器的数据,或者用来作为在JSP上显示的数据的源。

3 有一些返回String类型,无参数的方法,在LoginAction中是execute方法forwardLogin方法,这些方法就是Action需要执行的方法。

SUCCESSINPUT都在com.opensymphony.xwork2.Action类中定义,类型为String,分别用来表示成功和输入结果。

src\main\webapp中建立Welcome.jspLogin.jsp两个JSP文件

Welcome.jsp代码清单如下:

<%@ page language="java" contentType="text/html; charset=UTF-8"

pageEncoding="UTF-8"%>

<%@taglib prefix="s" uri="/struts-tags" %>

<!DOCTYPE html PUBLIC "-//W<chmetcnv w:st="on" unitname="C" sourcevalue="3" hasspace="False" negative="False" numbertype="1" tcsc="0">3C</chmetcnv>//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

<title>Welcome</title>

</head>

<body>

<s:url action="forwardLogin" id="forwardLoginUrl"></s:url>

<s:a href="%{forwardLoginUrl}">Forward Login</s:a>

<%

if(session.getAttribute("name") != null){

out.println("<br/> login success.");

}

%>

</body>

</html>

Login.jsp 代码清单如下:

<%@ page language="java" contentType="text/html; charset=UTF-8"

pageEncoding="UTF-8"%>

<%@taglib prefix="s" uri="/struts-tags" %>

<!DOCTYPE html PUBLIC "-//W<chmetcnv w:st="on" unitname="C" sourcevalue="3" hasspace="False" negative="False" numbertype="1" tcsc="0">3C</chmetcnv>//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

<title>Login</title>

</head>

<body>

<s:url action="login" id="loginUrl"></s:url>

<s:form action="%{loginUrl}">

<s:textfield label="Name" name="name"/>

<s:password label="Password" name="password" />

<s:submit></s:submit>

</s:form>

</body>

</html>

这些JSP有如下特点:

1 有一个特殊的taglib声明,<%@taglib prefix="s" uri="/struts-tags" %>这是struts2的标准taglib声明。

2 一些s标签

<s:url action="forwardLogin" id="forwardLoginUrl"></s:url>定义了一个叫做forwardLoginUrl的指向forwardLoginAction的路径。

同理:<s:url action="login" id="loginUrl"></s:url>定义了一个叫做loginUrl指向loginactionAction的路径。

<s:a href="%{forwardLoginUrl}">Forward Login</s:a>定义了一个指向forwardLogin的链接,其中href使用了上面定义的内容。

<s:form action="%{loginUrl}">

<s:textfield label="Name" name="name"/>

<s:password label="Password" name="password" />

<s:submit></s:submit>

</s:form>

定义了一个向login Action提交的form,这个Form提交namepassword两个字段,这个Formaction指向使用了前面定义的loginUrl变量。

配置src\main\resources\struts.xml 文件

在默认的package中添加如下内容

<package name="myPackage" extends="struts-default">

<!-- login begin -->

<action name="forwardLogin" method="forward"

class="com.jpleasure.login.action.LoginAction">

<result>/Login.jsp</result>

</action>

<action name="login" class=

分享到:
评论

相关推荐

    《嵌入式Linux应用程序开发详解》(pdf)第二章

    ### 嵌入式Linux应用程序开发详解:第二章 Linux基础命令 #### 一、章节概述 本章节选自《嵌入式Linux应用程序开发详解》的第二章,主要介绍了Linux的基础命令,这对于理解如何在Linux环境下进行高效的工作至关...

    ASP.NET AJAX程序设计第二卷第五章

    ### ASP.NET AJAX程序设计第二卷第五章:应用程序服务和本地化的深入解析 #### 应用程序服务:开启高效开发新模式 在《ASP.NET AJAX程序设计第二卷第五章》中,作者陈黎夫深入探讨了ASP.NET 2.0中一个关键的新特性...

    实验指导\第二章Struts框架详解.doc

    本实验指导将带你深入理解Struts框架,并通过创建一个简单的用户登录系统来实践其核心概念。 ### 实验简介 本实验的主要目标是让学生掌握Struts框架的核心组件,包括控制器、Action、ActionForm和配置文件的作用。...

    ASP.NET4高级程序设计第4版 带目录PDF 分卷压缩包 part1

    第二部分 数据访问 第7章 基础 7.1 ADO.NET架构 7.1.1 ADO.NET数据提供程序 7.1.2 ADO.NET的标准化 7.1.3 基本ADO.NET类 7.2 Connection类 7.2.1 连接字符串 7.2.2 测试连接 7.2.3 连接池 7.3 ...

    JSP项目开发之第2章 图书馆管理系统

    在本教程中,我们将深入探讨"JSP项目开发之第2章 图书馆管理系统",这是一个基于JavaServer Pages(JSP)技术构建的实际应用。图书馆管理系统是管理图书借阅、归还、查询等功能的软件系统,它对于图书馆的日常运营至...

    ccna第二学期第一章练习中文答案

    2. IP 协议头的修改:当路由器接收到一个以太网帧并需要将其转发到另一个接口时,它会修改第二层(链路层)的目的MAC地址和第三层(网络层)的目的IP地址,以确保数据包能够到达其目的地。 3. 接口配置问题:配置...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part2

    全书一共被压缩为5个rar,这是第二个!!!! 其他的请看ID:ljtt123(本人分享) 本博客提供的所有教程的资源原稿均来自于互联网,仅供学习交流之用,切勿进行商业传播。同时,转载时不要移除本申明。如产生任何...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part3

    3.5.4 第二个实例 94 3.6 解析名称空间 96 3.6.1 dom和名称空间 96 3.6.2 sax和名称空间 97 3.6.3 jdom和名称空间 98 3.6.4 dom4j和名称空间 98 3.7 小结 99 第4章 xsl转换 101 4.1 xslt概述 101 4.2 xalan...

    ASP.NET.2.0.编程-------珠玑

    第二章强调了在开始一个新项目之前进行充分组织和规划的重要性。这一章提供了很多资源来帮助开发人员打下坚实的基础。从选择合适的技术栈到确定项目的架构,这一章都是围绕如何确保项目的成功展开的。对于那些即将...

    ASP.NET3.5揭秘(卷2)part1

    第二部分 创建ASP.NET应用程序  第3章 维护应用程序状态  3.1 使用浏览器cookie  3.2 使用Session状态  3.3 使用用户配置文件  3.4 小结  第4章 缓存应用程序页面和数据  4.1 缓存概览  4.2 使用...

    ASP.NET 3.5 揭秘(卷2).part2

    第二部分 创建ASP.NET应用程序  第3章 维护应用程序状态  3.1 使用浏览器cookie  3.2 使用Session状态  3.3 使用用户配置文件  3.4 小结  第4章 缓存应用程序页面和数据  4.1 缓存概览  4.2 使用...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part4

    3.5.4 第二个实例 94 3.6 解析名称空间 96 3.6.1 dom和名称空间 96 3.6.2 sax和名称空间 97 3.6.3 jdom和名称空间 98 3.6.4 dom4j和名称空间 98 3.7 小结 99 第4章 xsl转换 101 4.1 xslt概述 101 4.2 xalan...

    Portal培訓教材之第8章_常见应用集成_FromIBM(8)

    在本章节中,我们将深入了解如何将各种常见的应用程序集成到IBM Portal中,包括办公自动化(OA)系统、业务流程管理(BPM)系统、即时通讯工具、论坛系统以及其他第三方应用。通过这些集成,我们可以增强IBM Portal的...

    ASP.NET4高级程序设计(第4版) 3/3

    第二部分 数据访问 第7章 基础 208 7.1 ADO.NET架构 209 7.1.1 ADO.NET数据提供程序 209 7.1.2 ADO.NET的标准化 210 7.1.3 基本ADO.NET类 211 7.2 Connection类 212 7.2.1 连接字符串 212 7.2.2 ...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part5

    3.5.4 第二个实例 94 3.6 解析名称空间 96 3.6.1 dom和名称空间 96 3.6.2 sax和名称空间 97 3.6.3 jdom和名称空间 98 3.6.4 dom4j和名称空间 98 3.7 小结 99 第4章 xsl转换 101 4.1 xslt概述 101 4.2 xalan...

    ASPNET35开发大全第一章

    17.2.2 新建一个MVC应用程序 17.2.3 ASP.NET MVC应用程序的结构 17.2.4 运行ASP.NET MVC应用程序 17.3 ASP.NET MVC原理 17.3.1 ASP.NET MVC运行流程 17.3.2 ASP.NET MVC工作原理 17.4 ASP.NET MVC开发 17.4.1 创建...

    微信小程序开发(一) (2).docx

    **第二章:“微信”小程序开发(二)**(未提供具体内容) 在后续章节中,通常会介绍更多关于小程序开发的细节,包括组件使用、网络请求、生命周期方法、API调用等。开发者需要掌握这些技能来创建丰富的交互体验和...

Global site tag (gtag.js) - Google Analytics