Struts2简单配置

今天学习了Struts2 的配置,记录一下。

实验条件:Myeclipse2014/struts2.3.4/windows

实验过程: 

    一、下载Struts2所需要的最少的jar包(下载jar

     由于是一个简单的配置,那么使用所需的最少支持jar包就可以了,这些所需的最少jar包在apache官网下载struts-2.3.4后,解压,在struts-2.3.4/apps/struts-blank/WEB-INF/lib下找到。

    二、使用Myeclipse创建一个web工程

    三、将下载解压得到的jar导入工程对应目录(/WEB-INF/lib)下。

    四、配置web.xml

    我的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">

    <display-name>Struts Blank</display-name>

    <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>

    <welcome-file-list>
        <welcome-file>index.jsp</welcome-file>
    </welcome-file-list>

</web-app>
在这里主要配置filter,

1、filter-name   名字随便取,但上下两个需保持一致

2、filter-class   过滤器类,在struts2-core-2.3.4.jar中可找到

3、url-pattern   过滤的路径,‘/*’表示对所有的路径都过滤

通过对filter的配置,则意为已将此项目交给struts2来管理了

 五、配置struts,xml

在src目录下建立文件struts.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>
	<!-- 常量名字来自 struts2-core-2.3.4 org.apache.struts2 static detault.properties-->
	<!-- 改变访问后缀名的常量 ,可选择,多选项逗号隔开   -->
	<constant name="struts.action.extension" value="action,do,,"></constant>
	<!-- 配置开发者模式 ,配置文件更新了,不需要重启服务器, 实时更新-->
	<constant name="struts.devMode" value="true"></constant>
	
	<!-- 配置路径映射,namespace是访问的路劲,如/aa,那么浏览器访问的时候应是/aa/index -->
    <package name="default" namespace="/" extends="struts-default">
    	<!--  属性
    			name:访问时的名字
    			class:对应的类   可不写,默认为xwork2 的 ActionSupport
    		    method:可不写,执行的方法,默认为execute
    	 -->
    	<action name="index" >             
    		<result>/index.jsp</result>
    	</action>
    </package>
	
</struts>

这里做个补充。我们为了快熟开发,常常使用ALT+"/"的快捷键组合得到提示信息。但是在断网的情况下是不可以得出的,根据struts.xml中

<!DOCTYPE struts PUBLIC
	"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
	"http://struts.apache.org/dtds/struts-2.3.dtd">
可以看到,它是从网络http://struts.apache.org/dtds/struts-2.3.dtd中获取的数据。

解决办法:Windows--Preferences---输入xml---xml Catalog--Add--file System--选择路径struts-2.3.4\src\core\src\main\resources\struts-2.3.dtd(这个要是在官网中下载的all版本有源码的才行)-- key type选择urI--key填写http://struts.apache.org/dtds/struts-2.3.dtd。这样即使在断网的情况下也可以使用快捷键提示了。

六、测试

将项目部署在tomcat上,在浏览器上访问http://localhost:8080/demoname/index或http://localhost:8080/demoname/index.action或http://localhost:8080/demoname/index.do都可以访问到index.jsp,可以看到浏览器的地址没有发生改变,应该是采用的请求转发的方式执行的跳转。

        


阅读终点,创作起航,您可以撰写心得或摘录文章要点写篇博文。去创作
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Struts2 中,可以使用拦截器来防止 XSS 攻击。以下是一些步骤: 1. 创建一个类,继承 org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter。 ```java public class XSSFilter extends StrutsPrepareAndExecuteFilter { @Override protected void postInit(FilterConfig filterConfig) throws ServletException { super.postInit(filterConfig); // 添加 XSS 拦截器 addFilter(new FilterHolder(new XSSInterceptor()), "/*", null); } } ``` 这个类的作用是在 Struts2 启动时添加一个 XSS 拦截器。 2. 创建一个 XSS 拦截器。 ```java public class XSSInterceptor implements Filter { @Override public void init(FilterConfig filterConfig) throws ServletException { } @Override public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { // 对请求参数进行 XSS 过滤 HttpServletRequest request = (HttpServletRequest) servletRequest; HttpServletResponse response = (HttpServletResponse) servletResponse; filterChain.doFilter(new XSSRequestWrapper(request), response); } @Override public void destroy() { } } ``` 这个拦截器的作用是对请求参数进行 XSS 过滤。 3. 创建一个 XSSRequestWrapper 类,继承 HttpServletRequestWrapper。 ```java public class XSSRequestWrapper extends HttpServletRequestWrapper { public XSSRequestWrapper(HttpServletRequest request) { super(request); } @Override public String getParameter(String name) { String value = super.getParameter(name); if (value != null) { value = Jsoup.clean(value, Whitelist.basic()); } return value; } } ``` 这个类的作用是重写 getParameter 方法,在获取请求参数时进行 XSS 过滤。 4. 在 web.xml 中添加过滤器配置。 ```xml <filter> <filter-name>xssFilter</filter-name> <filter-class>com.example.XSSFilter</filter-class> </filter> <filter-mapping> <filter-name>xssFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> ``` 这个配置的作用是将 XSSFilter 拦截器应用于所有的请求。 以上是一个简单Struts2 XSS 拦截器的配置。但是需要注意的是,这个拦截器只能对请求参数进行 XSS 过滤,对于响应内容的过滤需要使用其他的方案来解决。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

huaduotongtong

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值