struts2学习笔记1

struts框架可以提供对前端请求的封装和重定向,提高开发效率,对程序代码进行解耦

使用struts2的步骤.

 1首先引入struts2核心包,



2在web,xml中配置filter


   
   

   
   
	
    
    
	
    
    
		
     
     
      
      struts2
     
     
		
     
     
      
      org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
     
     
	
    
    
	
    
    
		
     
     
      
      struts2
     
     
		
     
     
      
      /*
     
     
	
    
    
	
    
    
		
     
     
      
      index.jsp
     
     
	
    
    

   
   

<url-pattern>/*</url-pattern>表示拦截所有请求。

在src根目录下添加strutsx.ml文件

<?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.custom.i18n.resources" value="mess" />
	<!-- 指定全局字符集 -->
	<constant name="struts.i18n.encoding" value="utf-8"></constant>
	<!-- 创建package包,继承struts 命名空间为根路径 -->
	<package name="struts2" namespace="/" extends="struts-default">
		<!-- 创建loginaction 使用actiong.LoginActiong文件 返回结果success 欢迎页面 erro 错误页面 input输入页面 -->
		<action name="login" class="action.LogionAction">
		
			<result name="error">/error.jsp</result>
			<result name="input">/login.jsp</result>
			<result name="success">/welcome.jsp</result>
		</action>
		<action name="sum" class="action.FirstAction">
			<result name="positive">/positive.jsp</result>
			<result name="negative">/negative.jsp</result>
		</action>
	</package>
	<!-- 引入其他struts配置文件 -->
	<include file="moresubmit.xml"></include>
	<include file="validate.xml"></include>
</struts>

3创建actiong/LoginAction文件。

package action;

import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletResponse;

import org.apache.struts2.ServletActionContext;
import org.apache.struts2.interceptor.ServletResponseAware;

import com.opensymphony.xwork2.Action;
import com.opensymphony.xwork2.ActionContext;


public class LogionAction implements Action, ServletResponseAware{
	private static final String SUCCESS = "success";
	private static final String ERROR = "error";
	private String username;
	private String password;
	private String tip;
	private HttpServletResponse response;

	public void setServletResponse(HttpServletResponse response) {
		this.response = response;
	}

	public String getTip() {
		return tip;
	}

	public void setTip(String tip) {
		this.tip = tip;
	}

	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() throws Exception {
		ActionContext ctx = ActionContext.getContext();
		Integer counter = (Integer) ctx.getApplication().get("counter");
		if (counter == null) {
			counter = 1;
		} else {
			counter += 1;
		}
		ctx.getApplication().put("counter", counter);
		ctx.getSession().put("user", getUsername());
		if (getUsername().equals("admin") && getPassword().equals("admin")) {
			Cookie c = new Cookie("user", getUsername());
			c.setMaxAge(60 * 60);
			ServletActionContext.getResponse().addCookie(c);
		//	response.addCookie(c);
			ctx.put("tip", "login success");
			return SUCCESS;
		} else {
			ctx.put("tip", "login failed");
			return ERROR;
		}

	}
}





  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在 Struts 中,处理异常有两种方式:编程式异常处理和声明式异常处理。本篇笔记将讲解声明式异常处理。 声明式异常处理是指在 struts.xml 文件中通过配置来处理异常。这种方式可以让开发人员将重心放在业务逻辑的处理上,而不必关心异常的处理。 首先,我们需要在 struts.xml 文件中配置全局的异常处理器: ```xml <global-exception-mappings> <exception-mapping exception="java.lang.Exception" result="errorPage"/> </global-exception-mappings> ``` 这里我们配置了一个全局的异常处理器,它会处理所有的 java.lang.Exception 异常,并将结果返回到名为 errorPage 的 result 中。 接下来,我们需要在 action 中声明需要处理的异常: ```xml <action name="test" class="com.example.TestAction"> <exception-mapping exception="java.lang.IllegalArgumentException" result="illegalArgument"/> <result name="success">/test.jsp</result> </action> ``` 在这个例子中,我们声明了 TestAction 类中处理 java.lang.IllegalArgumentException 异常,并将结果返回到名为 illegalArgument 的 result 中。 最后,我们需要在 struts.xml 文件中定义这些 result: ```xml <result name="errorPage">/error.jsp</result> <result name="illegalArgument">/illegalArgument.jsp</result> ``` 这样,当 TestAction 类中抛出 java.lang.IllegalArgumentException 异常时,就会返回到名为 illegalArgument 的 result 中。 总之,声明式异常处理可以让我们更加专注于业务逻辑的处理,通过配置来处理异常,从而提高代码的可维护性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值