Struts2 入门学习笔记(一)——基本配置
来源:互联网 发布:会声会影x7软件多大 编辑:程序博客网 时间:2024/05/24 01:00
Struts2基本配置
Struts2是一种基于MVC模式的Java EE技术的Web开发框架,可以对使用JavaEE技术的web项目开发进行代码的分层,优点是利于维护,框架源代码主要来自于WebWork框架,主要优点体现在解耦上面。Struts的处理类称为action,用于取代servlet
一.优点和JAR包的准备
1.1优点
一次请求创建一个action类,及每一次请求的aciton都是新的。与servlet api解耦封装数据 ,以前使用BeanUtils封装。支持OGNL表达式。简单立即比EL强大。使用值栈类型转换数据校验代码增强--拦截器,类似与过滤器
1.2JAR包
二:开发流程
2.1 配置web.xml文件
<?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"> <display-name></display-name> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> <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>
2.2创建控制层文件LoginAction.java
使用servlet时我们需要给类继承HttpServlet,而Struts不需要。
package cn.sun.action;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(){UserinfoService userinfoService = new UserinfoService();if(userinfoService.login(username, password)){return "toOkJSP";}return "toNoJSP";}}
2.3 创建业务逻辑层Model文件—UserinfoService.java
这里我们不用Dao层,直接判断下,作为一个小例子
package cn.sun.action;public class UserinfoService {/** * 登录验证 */public boolean login(String username, String password) {if("a".equals(username) && "aa".equals(password)){return true;}return false;}}
2.4 创建视图层View文件——login.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html> <head> </head> <body> <form action="login.action"> username:<input type="text" name="username"> password:<input type="password" name="password:"> <input type="submit" value="提交"> </form> </body></html>
2.5 添加核心配置文件Struts.xml
这部分是核心,我们将在src目录下创建,首先要往xml中配置约束,用来确定这是struts文件
约束内容可以在struts2-core.jar文件下找到,名字是struts-2.3.dtd,约束在其中就有,这里将复制到我们的xml中,文章最后有关于这部分的详解
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts PUBLIC"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN""http://struts.apache.org/dtds/struts-2.3.dtd"><struts><constant name="sytuts.devMode" value="true"></constant><package name="anyone" namespace="/" extends="struts-default"><action name="login" class="cn.sun.action.LoginAction"><result name="toOkJSP">/ok.jsp</result><result name="toNoJSP">/no.jsp</result></action></package></struts>
2.6添加ok.jsp和no.jsp页面
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html> <head> </head> <body> OK </body></html><%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html> <head> </head> <body> NO </body></html>
2.7运行项目
点击login.jsp页面执行相应操作转向相应的界面
三.struts.xml详解
1. <package> struts用于管理所有的请求处理类(Action) ,在 package可以配置多个action。
* name:给当前的包进行唯一命名。用于提供给其他继承的。
* namespace:给当前包所有的action提供一个统一的入口路径。
* extends:用于继承其他包。于是父包中的所有内容,子包都可以使用。
通常:extends="struts-default"
分析:struts-default.xml struts默认核心配置文件,用于配置struts已经完成所有功能。
位置:struts2-core-2.3.15.3.jar/struts-default.xml
内容: <packagename="struts-default"abstract="true">
* 例如:
<packagename="demoA"extends="struts-default">
<packagename="demoB"extends="demoA">
demoB 具有 demoA和struts默认 所有功能
2. <action> 用于配置请求处理类Action
* name : 请求action名称,用于提供给访问路径的。
* class : Action类的全限定类名
* method : Action类执行的方法名。默认值:execute
* 请求路径总结: package.namespace + "/" + action.name
* 例如: <packagenamesacpe="/a/b/c"><actionname="demoAction">
路径: /a/b/c/demoAction
3. <result> 用于配置结果集,确定执行那个jsp、另一个action等。
* name : 用于确定Action类的执行方法的返回值。
* text:标签体,用于确定jsp路径,如果使用/表示从WebRoot开始
* type : 结果集类型。默认值:dispatcher 表示请求转发。
4. <package><result-types> 用于结果集类型(可以看懂)
5. <package><interceptors> 用于配置拦截器(暂时了解)
<interceptor-stackname="defaultStack"> 将多个拦截器打包生成一个整体,此整体称为栈
6. <package><default-interceptor-ref> 默认拦截器的引用(暂时了解)
<default-interceptor-ref name="defaultStack"/> 所有的action将使用默认拦截器栈
7. <package><default-action-ref> 如果访问的路径使用的action不存在,将执行默认的action(可以看懂)
访问路径:/primer/xxxxAction
但没有配置:<actionname="xxxxAction"class="...">
进行访问:xxxxAction不存在,将执行默认配置
8. <package><default-class-ref> 如果访问的action,没有配置class属性,将执行默认的类。(可以看懂)
<actionname="userAction">
访问:/primer/uesrAction ,userAction已经配置,class将执行默认类
0 0
- Struts2 入门学习笔记(一)——基本配置
- struts2 入门(笔记一):基本使用_struts基本配置
- Struts2学习笔记(2)——Struts2基本配置
- Struts2学习笔记(一)入门示例
- struts2学习笔记一 基本配置及动态方法
- STRUTS2学习(一)——入门程序及基本流程
- (学习笔记)Struts2.3.3 入门与配置(一)
- Struts2学习笔记一之Struts2入门
- Struts2学习笔记(一) Struts2配置文件的配置
- Struts2学习笔记(一):struts2开发环境配置
- AngularJS学习笔记(一)基本配置
- AngularJS学习(一)——基本的入门程序(配置环境)
- struts2入门基本配置
- 1 Struts2入门与配置学习笔记
- Struts2 入门学习笔记(三)——数据转换
- Struts2 入门学习笔记(四)——输入校验
- Struts2 入门学习笔记(五)——上传下载
- Struts2学习笔记(3)-----Struts2入门
- 开发当中日期格式的转换(java语言)
- Codeforces--660A--Co-prime Array(数学水题)
- SQLServer游标(Cursor)简介和使用说明
- java 中JDK安装与环境变量配置
- 一张图读懂Java多线程
- Struts2 入门学习笔记(一)——基本配置
- 2016,最值得市场营销人员关注的数字营销策略
- android网易顶部导航栏demo
- 第三次上机作业
- 连接Oracle时报错ORA-12541: TNS: 无监听程序
- 45个android实例源码
- 开灯问题
- ios开发常用的技巧
- Redis-3.0.7_初步解析redis-cli