struts2介绍

经过长时间的优化改进,struts的功能越来越丰富,除了提供基础的mvc框架支持,其功能:struts标签,编码动作,处理表格,表格验证,消息资源文件,异常处理,通配符方法选择,注释,拦截器,单元测试,http会话,ajax和json等技术方面都有支持,从而使得struts作为通用mvc框架的选择之一。

mvc特点:
1.多个视图对应一个模型,可以减少代码复制与代码维护
2.模型返回的数据与显示逻辑分离,显示技术可以使用jsp,Velocitym疤或者Excel文档等
3.应用分为三层,可以降低各层之间的耦合等等

struts应用开发流程:
1.在web.xml文件中定义核心Filter拦截用户请求:

<filter>
		<filter-name>struts2</filter-name>
		<filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class>
	</filter>

	<filter-mapping>
		<filter-name>struts2</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>

2.如果以POST方式提交请求,则定义包含表单数据的JSP页面,如果以GET方式提交请求,则省略这步
3.定义处理用户请求的Action类,该类继承ActionSupport,其原理为:核心Servlet或Filter接受到用户请求后,会对用户请求进行简单处理(解析,封装参数等),然后通过反射来创建Action实例,并调用Action的指定方法来处理用户请求,可以利用两种解决方案创建Action实例:利用配置文件和利用约定
4.配置Action和物理结果和物理视图资源之间的对应关系

<action name="login" class="action.LoginAction">
        <result name="error">/error.jsp</result>
        <result name="success">/welcome.jsp</result>
        </action>

sturts2运行流程:
在这里插入图片描述

现在说下struts的示例应用:
登录处理

登录处理:
1.新建loginForm.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@taglib prefix="s" uri="/struts-tags"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title><s:text name="loginPage"/></title>
</head>
<body>
<s:form action="login">
   <s:textfield name="username" key="user"/>
   <s:textfield name="password" key="pass"/>
   <s:submit key="login"/>
</s:form>
</body>
</html>

2.加载国际化资源文件,在struts.xml中配置:

<!-- 指定全局国际化资源文件-->
    <constant name="struts.custom.i18n.resource" value="mess"/>
    <constant name="struts.enable.DynamicMethodInvocation"  value="false"/>

3.新建mess.properties文件:

loginPage=登录页面
errorPage=错误页面
succPage=成功页面
failTip=对不起,您不能登录!
user=用户名
pass=密码
login=登录

4.新建LoginAction类:

public class LoginAction extends ActionSupport{
	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;
	}
	
	//定义处理用户请求的execute方法
	public String execute(){
		//如果用户名为test,密码为test则登录成功
		if(getUsername().equals("test") && getPassword().equals("test")){
			ActionContext.getContext().getSession().put("user", getUsername());
			return SUCCESS;
		}
		return ERROR;
	}
}

5.配置struts.xml页面

<action name="login" class="action.LoginAction">
        <result name="error">/error.jsp</result>
        <result name="success">/welcome.jsp</result>
        </action>

6.登录http://localhost:8080/ssh/loginForm,输入用户名和密码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值