配置Struts2(以登录为例)

引言

      在了解Struts2的基础上,对Struts2做一次配置。以登录为例。

步骤

 引jar包(最常用的共8个)

commons-fileupload-1.2.1.jar        文件上传
commons-io-1.3.2.jar                       被fileupload所用,上面依赖下面
commons-logging-1.0.4.jar               日志处理
ognl-3.0.jar  (全程object graph notation  languag)          表达式语言
struts2-core-2.2.1.1.jar
Javassist-3.7.ga.jar
xwork-core-2.2.1.1.jar
Freemarker-2.3.16.jar

     下载jar包地址:http://struts.apache.org/download.cgi#struts251

      将jar包引用到lib文件夹下。做一个登录的例子。


新建jsp

       新建一个jsp,写一个表单

<span style="font-size:18px;"> <form action = "login">
    
    	username:<input type="text" name="username"><br>
    	password:<input type="password" name="password"><br>
</form></span>

配置struts2的核心过滤器

      修改web.xml,配置struts2的核心过滤器

<span style="font-size:18px;"><!-- 配置Struts2的核心过滤器 -->
	<filter>
		<filter-name>struts2</filter-name>
		<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class><!--对于当前应用的所有的请求都要在这儿处理-->
	</filter>
	
	<filter-mapping>
		<filter-name>struts2</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping></span>

新建struts.xml

      在src新建一个struts.xml,并引入文档类型(struts-2.0.dtd)。

<span style="font-size:18px;"><!DOCTYPE struts PUBLIC 
	"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
	"http://struts.apache.org/dtds/struts-2.0.dtd"></span>
     dtd下载地址:http://struts.apache.org/dtds/struts-2.0.dtd

     按照dtd里面的规则在里面配置。

<span style="font-size:18px;"><struts>
    <package name="struts2" extends="struts-default">
        <action name="login" class="com.tgb.struts2.LoginAction">		
	       <result name="success">/result.jsp</result>	
	</action>   
   </package>
</struts>      </span>


新建action

       在src文件夹下新建包:com.tgb.struts2,然后在包下新建类:LoginAction.java。

<span style="font-size:18px;">package com.tgb.struts2;
public class LoginAction{
     private String username;
     private String password;

     public String getUsername() {
          return username;
     }
     public void setUsername(String username) {
	this.username = username;
     }
     public String getPassword() {
	return password;
     }
     public void setPassword(String password) {
	this.password = password;
     }

     public String execute()
     {
       return "success";
     }
}
</span>

新建result.jsp

      在WebRoot下新建一个result.jsp页面,在body内接收返回数据。

<span style="font-size:18px;">username: ${requestScope.username }<br>
password: ${requestScope.password }<br></span>

运行

       到此登录配置完成。运行,输入用户名和密码。点击提交。显示结果。

    

执行流程说明

      首先在login.jsp页面中请求资源(action="login"),请求路径匹配了web.xml中的url-pattern(<url-pattern>/*</url-pattern>),纳入到过滤器<filter-class>管辖范围之内(<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>),然后寻找struts.xml.开始寻找里面的action,然后和login匹配(name="login")。然后实例化后面类(class="com.tgb.struts2.LoginAction")的一个对象,调用LoginAction.java中的set方法,将表单提交过来的信息set到我们的成员变量。紧接着调execute方法,调完之后返回“success”字符串。然后传到struts.xml的一个结果。匹配名字,然后定位到相应的jsp(<result name="success">/result.jsp</result>),然后在request中获取信息,至此完成。


     

你可能感兴趣的:(jsp,action,配置struts2,核心过滤器)