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内部出现异常。
全部异常表示整个应用出现的异常。