首页 > 代码库 > struts2入门(1)
struts2入门(1)
struts2 是一种基于MVC模式的开发框架。采用struts可以简化MVC设计模式的Web应用开发,很好的实现代码重用。
MVC模式,Model:Model部分包括业务逻辑层和数据访问层,在java Web中业务逻辑一般由JavaBean或者EJB担任,Model部分就是业务流程或者状态的处理以及业务规则的制定,业务模型的设计是MVC最主要的组件。View:View部分一般由JSP,HTML以及其他试图技术构建也可以使用XHTML,XML,Applet,Javascript等,Control:Control部分由Servlet组成,当用户请求从V部分过来时,C调用M在控制器中进行业务的处理。
struts2的工作原理:
一个客户请求在struts2框架中处理的过程大概有 一下几个步骤:
- 客户请求提交到服务器
- 请求被提交到一系列的过滤器或者拦截器,最后到达FilterDispatcher
- FilterDispatcher读取配置文件struts.xml,根据配置信息调用某个Action来处理客户请求。
- Action处理后,返回处理结果,FilterDispatcher根据struts.xml的配置信息找到对应的页面跳转。
struts2框架的业务控制器不会对用户请求进行实质的处理,用户请求最终由模型组件负责处理,业务控制器只是提供处理场合,是负责调度模型组件的调度器。
下面一个简单的例子测试:
导入几个常用的jar包,
commons-fileupload-1.2.1.jar
commons-io-1.3.2.jar
commons-io-1.3.2.jar
commons-logging-1.0.4.jar
freemarker-2.3.13.jar
ognl-2.6.11.jar
struts2-core-2.1.6.jar
xwork-2.2.1.jar
freemarker-2.3.13.jar
ognl-2.6.11.jar
struts2-core-2.1.6.jar
xwork-2.2.1.jar
文件结构如下:
web.xml:
<?xml version="1.0" encoding="UTF-8"?><web-app id="WebApp_9" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> <filter> <!--struts2的核心控制器名称--> <filter-name>struts2</filter-name> <!--struts2的核心控制器类--> <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> </filter> <filter-mapping> <!--struts2的核心控制器名称--> <filter-name>struts2</filter-name> <!--拦截所有URL请求--> <url-pattern>/*</url-pattern> </filter-mapping> </web-app>
login.jsp
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><title>Insert title here</title></head><body><h1>Hello,welcome to here!!</h1><a href="login.jsp">Login</a></body></html>
success.jsp
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <% String path=request.getContextPath(); String basePath=request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><title><%=basePath %></title></head><body><h1>Success!!!</h1></body></html>
LoginBean.java
package mybean;public class LoginBean {private String userName; //此处的userName名称必须和form定义的input 类型的 id=“userName"一样负责不能自动传值private String passWord; //会报pointerNull错误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 boolean login(String userName,String passWord) { boolean b=false; if(userName.equals("QQ")&&passWord.equals("123")){ b=true; return b; } else { b=false; return b; }}}
LoginAction.java
package action;import mybean.LoginBean;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() throws Exception { LoginBean lb=new LoginBean(); if(lb.login(userName, passWord)){ return "success"; } else { return "error"; } }}
PS:开发环境Win7+Eclipse Luna
struts2入门(1)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。