在struts2框架中使用servlet做接口
来源:互联网 发布:新手做淘宝客操作流程 编辑:程序博客网 时间:2024/06/05 21:08
在struts2框架中, 由于在web.xml中配置了struts2 的核心控制器,再配置servlet接口的话, 会被struts优先拦截到.从而出现servlet 404的情况
<!-- 配置struts2 的核心控制 : 过滤器 --><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.xml中配置.servlet
<!-- 测试接口 --><!-- 配置 .servlet 这样就可以通过struts2的拦截 --><servlet><servlet-name>DemoServlet</servlet-name><servlet-class>cn.yuge.servlet.DemoServlet</servlet-class></servlet><servlet-mapping><servlet-name>DemoServlet</servlet-name><url-pattern>/demoservlet.servlet</url-pattern><!-- <url-pattern>/demoservlet</url-pattern> --></servlet-mapping>
这样配置之后, 再访问servlet, 就可以通过struts的拦截了
测试demo:
1. 将web项目部署到tomcat ;
2. 访问index.jsp 输入, 并提交
3. action 打印正常
4. 浏览器输入 http://localhost:8080/struts2-servlet/demoservlet.servlet?username=123, 后台成功打印 username的参数.
5. 证明已成功通过struts拦截
web.xml
<?xml version="1.0" encoding="UTF-8"?><web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns="http://java.sun.com/xml/ns/javaee"xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"id="WebApp_ID" version="2.5"><display-name>struts2-servlet</display-name><!-- 配置struts2 的核心控制 : 过滤器 --><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><!-- 测试接口 --><!-- 配置 .servlet 这样就可以通过struts2的拦截 --><servlet><servlet-name>DemoServlet</servlet-name><servlet-class>cn.yuge.servlet.DemoServlet</servlet-class></servlet><servlet-mapping><servlet-name>DemoServlet</servlet-name><url-pattern>/demoservlet.servlet</url-pattern><!-- <url-pattern>/demoservlet</url-pattern> --></servlet-mapping><welcome-file-list><welcome-file>index.html</welcome-file><welcome-file>index.htm</welcome-file><welcome-file>index.jsp</welcome-file><welcome-file>default.html</welcome-file><welcome-file>default.htm</welcome-file><welcome-file>default.jsp</welcome-file></welcome-file-list></web-app>
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><package name="p1" extends="struts-default"><action name="demo" class="cn.yuge.action.DemoAction" method="demo"><result name="success">/success.jsp</result></action></package></struts>
index.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><form action="${pageContext.request.contextPath}/demo.action"method="post">用户名:<input type="text" name="name" /><br /> 年龄: <input type="text" name="age" /><br /> <input type="submit" value="提交" /></form></body></html>
DemoAction
package cn.yuge.action;import cn.yuge.domain.User;import com.opensymphony.xwork2.ActionSupport;import com.opensymphony.xwork2.ModelDriven;public class DemoAction extends ActionSupport implements ModelDriven<User> {private User user = new User();@Overridepublic User getModel() {return user;}public String demo() {System.out.println(user);return SUCCESS;}}User
package cn.yuge.domain;public class User {private Long id;private String name;private String age;public Long getId() {return id;}public void setId(Long id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getAge() {return age;}public void setAge(String age) {this.age = age;}@Overridepublic String toString() {return "User [id=" + id + ", name=" + name + ", age=" + age + "]";}}
success.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>执行成功</body></html>
DemoServlet
package cn.yuge.servlet;import java.io.IOException;import java.io.PrintWriter;import java.util.ArrayList;import java.util.List;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public class DemoServlet extends HttpServlet {private static final long serialVersionUID = 6792396567928634227L;// 版本信息@Overrideprotected void doPost(HttpServletRequest request,HttpServletResponse response) throws IOException {response.setContentType("text/html;charset=utf-8");// 设置响应编码// 浏览器输入// http://localhost:8080/struts2-servlet/demoservlet.servlet?username=123String username = request.getParameter("username");response.getWriter().write(username);}@Overrideprotected void doGet(HttpServletRequest request,HttpServletResponse response) throws IOException {doPost(request, response);// response.getWriter().write("-1");}}
阅读全文
0 0
- 在struts2框架中使用servlet做接口
- struts2框架在动作类中访问servlet的api
- struts2中使用servlet
- 在struts2中使用tiles框架
- 在Struts2框架中使用注解
- 在struts2中使用filter来配置servlet处理业务
- struts2中如何使用servlet
- Struts2中使用Servlet API
- 在struts2框架下做下载功能
- 在struts2框架做上传功能
- 在Struts2框架中获取Servlet api的三种方式
- 利用myeclipse在GAE中使用struts2框架
- Struts2 Struts2与servlet接口
- struts2 中使用 servlet遇到的问题
- Struts2中使用Servlet-API步骤
- struts2中如何使用servlet的总结
- 【Servlet】在servlet中使用session
- 在Struts2中使用类似传统的servlet、session、application作用域对象
- jemeter对接口的post请求进行参数化进行压测
- vue的 计算属性(computed)、methods、watched三者区别
- 查看-颜色值HTML
- App 抓包工具二(Fiddler)
- 企业中docker的使用与安装
- 在struts2框架中使用servlet做接口
- Android 自定义View
- aqtest 004
- Linux OpenSSL 升级
- 数据库三大范式
- elasticsearch删除index和数据
- C++文件读写详解(ofstream,ifstream,fstream)
- 终于在pycharm下(Python3.6.1版本)安装完成机器学习相关库文件(sklearn scikit-learn gensim xgboost tensorflow nltk )
- 算法--生成m个指定范围的不重复随机数的三种方法分析(Java实现)