struts2配置步骤:
1、创建web项目
2、导入jar包
(1) asm-5.1.jar
(2) asm-commons-5.1.jar
(3) asm-tree-5.1.jar
(4) commons-fileupload-1.3.2.jar
(5) commons-io-2.4.jar
(6) commons-lang3-3.4.jar
(7) commons-logging-1.1.3.jar
(8) freemarker-2.3.23.jar
(9) javassist-3.20.0-GA.jar
(10) log4j-api-2.7.jar
(11) ognl-3.1.10.jar
(12) struts2-core-2.5.5.jar
3、配置web.xml
<web-app></web-app>中加入
<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>
4、在src目录下,创建struts.xml。内容如下:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
"http://struts.apache.org/dtds/struts-2.5.dtd">
<struts>
<constant name="struts.action.extension" value="do,action" />
<constant name="struts.enable.DynamicMethodInvocation" value="false" />
<constant name="struts.devMode" value="true" />
<package name="Java1109Structs2" namespace="/" extends="struts-default">
<action name="login" class="com.user.hello.Hello" method="test">
<result name="success">/succ.jsp</result>
<result name="error">/fail.jsp</result>
</action>
</package>
</struts>
注意:配置package部分。name为项目逻辑名称,namespace为命名空间。
配置action部分。login为View请求目录 class 为Java类实际请求目录 method 为请求方法
配置result部分,name表示返回标识,/succ.jsp 表示返回页面
struts2中的constant配置:
(1)<constant name="struts.i18n.encoding" value="UTF-8"/>
*指定web应用的默认编码集。可以设置GBK或者UTF-8等。
相当于在HttpServletRequest中设置 setCharacterEncoding="UTF-8"
(2)<constant name="struts.objectFactory" value="spring"/>
指定Struts2默认的ObjectFactoryBean,默认值就是spring。
(3)<constant name="struts.objectFactory.spring.autoWire" value="name"/>
指定Spring框架自动装配模式,该属性值默认为name
(4)<constant name="struts.objectFactory.spring.useClassCache" value=""/>
指定Spring框架是否需要缓存Bean实例。true,false。默认是true,不建议修改。
(5)<constant name="struts.multipart.parser" value="jakarta"/>
该属性指定处理multipart/form-data的mime类型(文件上传)请求框架,
这个属性支持 1、cos 2、pell 3、jakarta 表示分别对应使用cos文件上传框架
pell上传以及commons-fileupload文件上传框架
(6)<constant name="struts.multipart.saveDir" value=""/>
*该属性指定上传文件的临时保存路径,默认值是servlet底层临时存储位置。
(7)<constant name="struts.multipart.maxSize" value="">
*该属性表示上传内容允许的最大字节数。
(8)<constant name="struts.action.extension" value="do,ppap">
*该属性允许请求后缀修改,默认为action,多个请用逗号分隔
(9)<constant name="struts.serve.static" value=""/>
该属性设置是否通过jar文件提供静态内容服务。默认为true。只有2个值,一个是false,一个true
(10)<constant name="struts.serve.static.browserCache" value="">
*该属性设置是否允许在浏览器中静态缓存内容。true或者false。默认是true。
(11)<constant name="struts.devMode" value="false"/>
*该属性设置是否使用开发模式,如果是开发模式,会显示完整的出错信息,
只接收2个值,true和false,默认为false。
(12)<constant name="struts.i18n.reload" value="false"/>
该属性表示在开发阶段,每次请求,国际化资源文件是否被重新加载。
false不是重新加载,true每次都重新加载。
(13)<constant name="struts.enable.DynamicMethodInvocation" value="false" />
*该属性表示是否支持动态调用函数模块。默认为false。true表示不支持。
such as <action name="*/*" method="{2}" class="actions.{1}">
JDBC连接数据库:
package com.user.hello;
import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement; public class UserBean { private String driver = "com.mysql.jdbc.Driver"; private String url = "jdbc:mysql://localhost:3306/bobaoge?characterEncoding=UTF8"; private String user = "root"; private String pass = "1218610881"; private Connection conn; private Statement stmt; private ResultSet rs; public UserBean() throws Exception{ Class.forName( driver ); conn = DriverManager.getConnection( url , user, pass); } public ResultSet UserQuery( String sql ) throws Exception{ stmt = conn.createStatement(); rs = stmt.executeQuery( sql ); return rs; } public boolean UserUpdate( String sql ) throws Exception{ stmt = conn.createStatement(); int result = stmt.executeUpdate( sql ); ConnClose(); if( result <= 0 ){ return false; } return true; } public void ConnClose(){ try{ if( rs != null ){ rs.close(); } if( stmt != null ){ stmt.close(); } if( conn != null ){ conn.close(); } }catch(Exception e){ e.printStackTrace(); } } }
Java类:
package com.user.hello; import javax.servlet.http.HttpServletRequest; import org.apache.struts2.ServletActionContext; import com.opensymphony.xwork2.ActionSupport; public class Hello extends ActionSupport{ private static final long serialVersionUID = 1L; //配置版本情况 public String test(){ //自定义函数 HttpServletRequest req = ServletActionContext.getRequest(); if( req.getParameter("userPwd") .equals("123456") ){ return SUCCESS; }else{ return ERROR; } } public String execute(){ //struts默认载入函数 return null; } }
6、访问某个action,可以直接使用:
localhost:8080/项目名称/action名称.action
如:localhost:8080/test/login.action
7.struts2 Exception。
分为局部异常处理和全局异常处理。
局部异常表示的是 某个action内部出现异常。
全部异常表示整个应用出现的异常。
7.struts2 Exception。
分为局部异常处理和全局异常处理。
局部异常表示的是 某个action内部出现异常。
全部异常表示整个应用出现的异常。