Struts2.x入门

1.新建一个web项目并加入struts-2.1.6的依赖库。
[quote]
struts-2.1.6_HOME/lib/commons-fileupload-1.2.1.jar
struts-2.1.6_HOME/lib/commons-io-1.3.2.jar
struts-2.1.6_HOME/lib/commons-logging-1.1.jar
struts-2.1.6_HOME/lib/freemarker-2.3.13.jar
struts-2.1.6_HOME/lib/ognl-2.6.11.jar
struts-2.1.6_HOME/lib/struts2-core-2.1.6.jar
struts-2.1.6_HOME/lib/xwork-2.1.2.jar
[/quote]

2.配置web.xml文件(struts2是从一个过滤器开始运行的)

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">

<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>
</web-app>


3.在项目的src目录下创建struts.xml文件

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">

<struts>
<!-- 设置常量(这里表示设置为开发模式) -->
<constant name="struts.devMode" value="true" />
<!--
访问路径必须与namespace保持一致
extends必须继承name为struts-default或已经继承过struts-default的package
-->
<!--
struts2会先根据url找对应的namespace,然后根据url找这个namespace下对应的action,然后根据action对应的方法的返回值找对应的result
-->
<package name="default" namespace="/user" extends="struts-default">
<default-action-ref name="login_input" />
<action name="login_input">
<result>/login.jsp</result>
</action>
<action name="login" class="com.yx.zzg.action.UserAction"
method="login">
<result>/User_login_success.jsp</result>
</action>
</package>
</struts>


4.编写action类

package com.yx.zzg.action;

import com.opensymphony.xwork2.ActionSupport;

public class UserAction extends ActionSupport {

private String password;

private String username;

public String getPassword() {
return password;
}

public String getUsername() {
return username;
}

public String login() throws Exception {
System.out.println("username=" + username + ",password=" + password);
return SUCCESS;
}

public void setPassword(String password) {
this.password = password;
}

public void setUsername(String username) {
this.username = username;
}

}


5.编写表单页面

<%@ page language="java" import="java.util.*;" pageEncoding="gbk"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>My JSP 'login.jsp' starting page</title>
</head>

<body>
<form action="login" method="post">
<input type="text" name="username" />
<input type="text" name="password" />
<input type="submit" value="提交">
</form>
</body>
</html>


6.编写提交成功页面

<%@ page language="java" import="java.util.*;" pageEncoding="gbk"%>
<%@ taglib prefix="s" uri="/struts-tags"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>My JSP 'index.jsp' starting page</title>
</head>
<body>
${username }

<s:debug />
</body>
</html>



struts2执行过程:
当一个客户端请求过来的时候会把请求交给我们的服务器(tomcat),服务器会根据请求会找到交给哪个application来处理,然后会去找这个application下的web.xml文件,并参考web.xml文件,会把这个请求交给struts2的filter来处理,并调用这个filter里面的doFilter()方法,在这个doFilter方法中它会参考struts.xml文件,在参考过程中首先会参考struts.xml中的namespace,然后会找这个namespace下对应的action,然后会找对应的result,当找到对应的result后会把请求forword对应的jsp页面。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值