Struts搭建:
1、 先在Eclipse下创建一个Dynamic Web Project项目,创建过程为在file中点击new,在new中选择创建Dynamic Web Project,然后在Project name中输入项目名点击next,继续点击next,然后选中Generate web.xml delopmentdescriptor,这样项目的WebContent/Web-INF下就能自动生成web.xml文件。
2、 下载struts-2.3.24-all包,最好到官网上下载,将包解压,在struts-2.3.24/lib下找到下面几个包,并将他们复制到WebContent/WEB_INF/lib下,所需要的包如下:
</pre><p></p><div><img src="file:///C:\Users\Administrator\AppData\Roaming\Tencent\Users\313864589\QQ\WinTemp\RichOle\GK4W1YQZXSPYWOS1DEDQI5D.png" alt="" /></div><p></p><p align="left">3、 建com.example.myssh.action在里面创建一个处理用户登陆操作的控制类:RegisterAction,其中用户名和用户密码是自己设定的字符串,struts的搭建过程中暂时没有访问数据库。</p><p align="left"><pre name="code" class="html"><pre name="code" class="html"><span style="font-size:14px;">package com.example.myssh.action;
import com.example.myssh.Form.UserForm;
import com.opensymphony.xwork2.ActionSupport;
public class RegisterAction extends ActionSupport{
private UserForm userform;
/**
* 判断用户名和用户密码是否为空
* @return
*/
public String login(){
if(userform.getName()!=null&&userform.getPassword()!=null){
if(userform.getName().equals("test")&&userform.getPassword().equals("123")){
return "success";
}
}
return "error";
}
public UserForm getUserform() {
return userform;
}
public void setUserform(UserForm userform) {
this.userform = userform;
}
}
</span>
4、 创建一个名为com.example.myssh.Form的包,包里面创建一个用于和用户进行数据交互的对象:UserForm
publicclass UserForm {
/**
* 用户名
*/
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;
}
}
5、 在WebContent下面创建Register.jsp、Success.jsp、Fail.jsp三个页面来实现用户登陆、登陆成果返回页面、登陆失败返回页面:
Register.jsp登陆页面:
<%@page language="java" contentType="text/html;charset=UTF-8"
pageEncoding="UTF-8"%>
<%@taglib prefix="s" uri="/struts-tags"%>
<!DOCTYPEhtml PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<metahttp-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>UserLogin Page</title>
</head>
<body>
<s:formaction="register">
<s:textfieldname="userform.name" label="用户名"></s:textfield>
<s:passwordname="userform.password" label="密码"></s:password>
<!--<s:select list="#{'1':'男','0':'女'}" listKey="key"listValue="value"
name="user.gender" label="性别" value="1"></s:select> -->
<s:submit value="登陆"></s:submit>
</s:form>
</body>
</html>
Success.jsp登陆成功页面:
<%@page language="java" contentType="text/html;charset=UTF-8"
pageEncoding="UTF-8"%>
<%@taglib prefix="s" uri="/struts-tags"%>
<!DOCTYPEhtml PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<metahttp-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Success</title>
</head>
<body>
登陆成功!
</body>
</html>
Fail.jsp登陆失败页面:
<%@page language="java" contentType="text/html;charset=UTF-8"
pageEncoding="UTF-8"%>
<%@taglib prefix="s" uri="/struts-tags"%>
<!DOCTYPEhtml PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<metahttp-equiv="Content-Type" content="text/html;charset=ISO-8859-1">
<title>Fail</title>
</head>
<body>
登陆失败!
</body>
</html>
6、在src目录下建立一个struts.xml文件,里面配置了用户请求的Action和这个Action在后台控制代码中实现他的类和类中的具体方法,文件内如下:
<?xmlversion="1.0" encoding="UTF-8" ?>
<!DOCTYPEstruts PUBLIC
"-//Apache Software Foundation//DTDStruts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<includefile="struts-default.xml" />
<constant name="struts.i18n.encoding"value="UTF-8" />
<constantname="struts.action.extension" value="action" />
<constantname="struts.serve.static.browserCache" value="false"/>
<constantname="struts.multipart.maxSize" value="524288000" />
<package name="myssh"extends="struts-default">
<action name="register"method="login"class="com.example.myssh.action.RegisterAction">
<resultname="input">/Register.jsp</result>
<resultname="success">/Success.jsp</result>
<resultname="error">/Fail.jsp</result>
</action>
</package>
</struts>
其中<result name="success">/Success.jsp</result> 的作用是后台判断登陆成功后返回一个success字符串,Action根据这个字符串跳转到登陆成功页面Success.jsp,如果登陆失败后台返回ERROR字符串,Action通过<resultname="error">/Fail.jsp</result> 配置跳转到Fail.jsp页面。
7、修改web.xml的内容,使得用户提交表单后如下:
<?xmlversion="1.0" encoding="UTF-8"?>
<web-appid="WebApp_9" version="2.4"xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2eehttp://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<display-name>SSHProject</display-name>
<filter>
<filter-name>SSH</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>SSH</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<welcome-file-list>
<welcome-file>Register.jsp</welcome-file>
</welcome-file-list>
</web-app>
上面配置实现了拦截用户的请求,org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter先执行init方法然后通过doFilter找到Action,Action配置在struts文件中。
项目的整体结构如下:
运行结果:
用户名:test
密码:123