struts工作原理详解心得体会 报错及解决办法
2015-12-16 15:53
369 查看
一。
首先服务器接收到url请求之后,会先到web.xml中运行过滤器,看看符合什么样的请求可以被接受。
像*这种的话说明只要是url输入的请求都可以被接受运行,如果是*.action的话说明只有后缀为action的请求才会被处理。
然后再到struts.xml中去匹配是否有配置此action,如果有的话就去执行。比如说我们的请求路径为localhost:8080/a/b/register.action,那么就会去struts.xml中看有没有此路径下的action,如果没有的话就看localhost:8080/a/register.action里面有没有,知道没有找到为止。这就涉及到命名空间的问题
找到相应的action之后就去处理相应的请求
二。
如果有涉及到表单提交的问题,我们一般是先获得表单提交的页面(不是先过滤请求),这个的话只要部署了项目,我们自然可以访问得到,然后点击“提交”的时候就会去处理form表单的action,看看这个请求是否满足过滤器的要求,然后接着做“一”的步骤
这个时候url会由访问时候的路径变成web.xml中过滤器要求的url,实现了跳转。
报错及解决办法
2.
3.解决插入数据库的中文乱码的问题
只要保持所有的编码都是统一的就不会出现乱码的问题,一般采用UTF-8也能处理中文,一个中文字用utf-8处理是3个字节
首先服务器接收到url请求之后,会先到web.xml中运行过滤器,看看符合什么样的请求可以被接受。
<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>
像*这种的话说明只要是url输入的请求都可以被接受运行,如果是*.action的话说明只有后缀为action的请求才会被处理。
然后再到struts.xml中去匹配是否有配置此action,如果有的话就去执行。比如说我们的请求路径为localhost:8080/a/b/register.action,那么就会去struts.xml中看有没有此路径下的action,如果没有的话就看localhost:8080/a/register.action里面有没有,知道没有找到为止。这就涉及到命名空间的问题
找到相应的action之后就去处理相应的请求
二。
如果有涉及到表单提交的问题,我们一般是先获得表单提交的页面(不是先过滤请求),这个的话只要部署了项目,我们自然可以访问得到,然后点击“提交”的时候就会去处理form表单的action,看看这个请求是否满足过滤器的要求,然后接着做“一”的步骤
这个时候url会由访问时候的路径变成web.xml中过滤器要求的url,实现了跳转。
报错及解决办法
Unable to load configuration. - action - file:/D:/workspace/Struts2_0100/WebRoot/WEB-INF/classes/struts.xml:38:66 at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:69) at org.apache.struts2.dispatcher.Dispatcher.init_PreloadConfiguration(Disp 9 27, 2011 4:07:17 午後 org.apache.catalina.core.StandardContext filterStart 重大: フィルタ struts2 の起動中の例外です Unable to load configuration. - action - file:/D:/workspace/Struts2_0100/WebRoot/WEB-INF/classes/struts.xml:38:66 at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:437) at java.lang.Thread.run(Unknown Source) Caused by: Unable to load configuration. - action - file:/D:/workspace/Struts2_0100/WebRoot/WEB-INF/classes/struts.xml:38:66 at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:69) 出现问题的原因:是jar包的问题,那个spring-struts-plugin.jar没有自动发布到服务器上,然后我手动添加到服务器上就没问题了
2.
<constant name="struts2.objectFactory" value="spring" /> !表示交给Spring管理 <package name="Spring_Hibernate" extends="struts-default"> <action name="register" method="execute" class="userAction"> !class的名字是bean里面的id名 <result name="success">/success.jsp</result> <result name="fail">/fail.jsp</result> </action>
3.解决插入数据库的中文乱码的问题
<%@ 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">
只要保持所有的编码都是统一的就不会出现乱码的问题,一般采用UTF-8也能处理中文,一个中文字用utf-8处理是3个字节
相关文章推荐
- FreeMarker整合Spring 3
- 黑马程序员_Eclipse与MyEclipse快捷键
- Spring Security3 - MVC 整合教程 (初识Spring Security3)
- SpringMVC-Mybatis学习总结整理(下)
- 在eclipse中使用maven搭建web项目
- Java 时间精确收集
- Struts1——ActionForward对象常用设置
- java类
- Java学习----你可以知道对象的工作结果(获取方法的返回值)
- Spring中applicationContext.xml文件的初始化过程
- struts2中action 提交两次的问题
- SpringMVC注解备注
- springmvc 注解
- Java开发之路之多线程
- Msgpack0.6.12 java版简单使用总结
- 有关eclipse项目搬迁到Android Studio后.so文件引用的问题
- javassist使用与源码解析(一)
- Java中Calendar的使用方法
- Java生成字符画
- Myeclipse6.5频繁自动弹出,错误:JVM terminated. Exit code=1