SSH学习之Struts1入门的简单登陆案例。

上一篇将博客将环境搭建起来了。

这篇博客将开始Struts1的基础学习。


1.先了解Struts1的工作流程:

服务器启动后,根据web.xml加载ActionServlet读取struts-config.xml文件内容到内存

以登录为例:第一次进login.jsp会先实例化Form、把默认值赋给表单元素。
输入用户名密码提交表单、提交到action属性的login.action,通过ActionServlet读struts-config.xml文件找到 action下的path属性找到.action,通过name属性找form-beans中的form-bean的name属性得到ActionForm的包名类名,先实例化form,把表单的值填充给form,调用form的validate方法验证、ActionErrors返回null表示验证通过,否则失败返回input指定的页面.验证通过会实例化Action,执行Action的execute方法。


2.Action, ActionForm, ActionForward ,这三个对象构成了Struts 的核心。

 Struts 最核心的控制器是ActionServlet ,该Servlet 拦截用户请求,井将用户请求转入到Struts 体系内。


3.在web.xml中添加配置:


		
		action
		
		
			org.apache.struts.action.ActionServlet
		
		
		
			
			config
			/WEB-INF/struts-config.xml
		

		
			debug
			2
		
		
			detail
			2
		

		
		2

	
	
		action
		*.do
	

4.实现和配置ActionForm:

ActionForm必须继承Struts提供的ActionForm基类,该类只是一个简单的JavaBean,包含每个属性的get,set方法。

*属性名要与表单中的的name相同。

①实现:

@SuppressWarnings("serial")
public class LoginActionForm extends ActionForm{

	private String userName;
	private String pswd;
	public String getUserName() {
		return userName;
	}
	public void setUserName(String userName) {
		this.userName = userName;
	}
	public String getPswd() {
		return pswd;
	}
	public void setPswd(String pswd) {
		this.pswd = pswd;
	}
	
}

②配置:新建web.xml文件中指定的struts-config.xml配置文件,并添加属性


	
		
		
	


5.实现和配置Action:

继承struts提供的Action基类,实现ActionFoward类型的execute方法,返回一个ActionMapping的forward  url。

Action是线程不安全的,因为所有的请求共享一个action实例。


①实现:

public class LoginAction extends Action {

	public ActionForward execute(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response)
			throws Exception {
		LoginActionForm lForm = (LoginActionForm) form;
		String userName = lForm.getUserName();
		String pswd = lForm.getPswd();
		if (userName.equals("") || pswd.equals("") || pswd == null
				|| userName == null) {
			userName = "admin";
			pswd = "admin";
		}
		if ("admin".equals(userName) && "admin".equals(pswd)) {
			return mapping.findForward("welcome");
		}

		return mapping.findForward("error");

	}
}
②配置:


	
	
	
		
			
			
			
		
		
	

6.配置forward,包含全局forward和局部forward的2种,局部如上所示,name是execute将要forward的url。

redirect:控制转发还是重定向。默认false 转发:RequestDispatch.forward,true重定向:HttpServletResponse.sendRedirects
全局forward:


	
		
		
	

7.整个struts-config.xml属性:






	
		
		
	
	
	
		
		
	
	
	
		
			
			
			
		
		
	

8.login.jsp:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>




Insert title here


 	

用户名:


密码:






你可能感兴趣的:(SSH,java,struts,maven)