Servlet和SpringMVC补课

1.web.xml加载顺序

http://mianhuaman.iteye.com/blog/1105522

关键点:ServletContext -> context-param -> listener -> filter ->
servlet

2.beans xmlns

http://www.w3school.com.cn/xml/xml_namespaces.asp

用于避免元素命名冲突。在Spring中应用极其广泛。

3.SpringMVC

http://blog.jobbole.com/29706/

优点是层次清晰,适配灵活。更可以基于注解支持零配置。

几个重要的标签 http://honphenc.blog.163.com/blog/static/18961734520123226151941/


<!-- 启用spring mvc 注解 -->
<context:annotation-config />

<!-- 扫描加载指定的包中有相关注解的类 -->
<context:component-scan base-package="com.controller"></context:component-scan>

<mvc:annotation-driven />
<!-- 相当于注册了DefaultAnnotationHandlerMapping和AnnotationMethodHandlerAdapter两个bean,配置一些messageconverter。即解决了@Controller注解的使用前提配置。 -->

4.ServletRequest + ServletResponse(实际使用的是HttpServletRequest +
HttpServletResponse)

request
http://baike.baidu.com/view/4668529.htm













方法 作用
public String getParameter(String name) 获取request中的参数
public BufferedReader getReader() throws
IOException
获得request的正文(字符流)
public ServletInputStream getInputStream() 获得request的正文(二进制流)

response
http://hi.baidu.com/javalovers/item/730686f94028ec6c3d14857d
http://docs.oracle.com/javaee/6/api/javax/servlet/ServletResponse.html













方法 作用
response.setCharacterEncoding("UTF-8"); 只是将数据用UTF-8编码
response.setHeader("Content-Type","text/html;charset-UTF-8"); 告诉客户端编码方式
response.setContentType("text/html;charset=UTF-8"); 功效等同于以上两行代码

6.莫名其妙乱码问题(这里的情景使用的编码是UTF-8)

(1)指定读取POST时的编码:在web.xml中配置EncodingFilter

(2)指定读取GET时的编码:以tomcat为例,在server.xml中设置
<Connector port="80"
protocol="HTTP/1.1" connectionTimeout="20000"  redirectPort="8443"
URIEncoding="UTF-8"/>

(3)单元测试时无法配置EncodingFilter,尤其用@RequestBody和@ResponseBody自动转换时:


<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
<property name="messageConverters">
<util:list id="beanList"><ref bean="stringHttpMessageConverter" /></util:list>
</property>
</bean>
<bean id="stringHttpMessageConverter" class="org.springframework.http.converter.StringHttpMessageConverter">
<property name="supportedMediaTypes">
<list>
<value>text/plain;charset=UTF-8</value>
<value>text/html;charset=UTF-8</value>
</list>
</property>
</bean>

(4)Eclipse控制台乱码:Window  | Preferences  | Workspace  | 
Text file encoding  | UTF-8

时间: 2024-10-31 03:02:55

Servlet和SpringMVC补课的相关文章

Servlet、SpringMVC、Struts2对请求-响应模式实现

从整个B/S程序的运行结构来看,J2EE的表示层解决方案实际上是对"请求-响应"模式的一种实现.既然谓之"请求-响应"也就势必存在着两大沟通角色: 请求对象和响应对象.Servlet.SpringMVC.Struts2对请求-响应的实现是分别基于参数-参数模式.参数返回值.和POJO模式的,由于这两大角色的承载载体和编程语言实现基础都不同,因此三种模式的可谓风格迥异. 参数-参数模式 参数-返回值模式 POJO模式 请求方 方法参数 方法参数 属性变量 响应方 方法

Servlet、SPringMVC、Struts等防止表单重复提交的多种处理方法

第一种处理方法(非拦截器): 目前这种方法不建议,因为JSP规范不建议写JAVA代码.这种可以方便第二种处理方法的理解,第二种方法引入拦截器的思想,原理基本一样,模仿Struts的Token机制. 1.在需要防止重复的jsp中加入下面的java代码, <%@page import="java.util.Random"%> <%@page import="java.util.Set"%> <%@page import="java

Servlet、SPringMVC、Struts等防止表单反复提交的多种处理方法

第一种处理方法(非拦截器): 眼下这样的方法不建议,由于JSP规范不建议写JAVA代码.这样的能够方便另外一种处理方法的理解,另外一种方法引入拦截器的思想,原理基本一样,模仿Struts的Token机制. 1.在须要防止反复的jsp中添?以下的java代码, <%@page import="java.util.Random"%> <%@page import="java.util.Set"%> <%@page import="

文件上传(Servlet/Struts2/SpringMVC)

文件上传 Servlet实现 要实现文件上传的功能,必须在form的表单中的添加 enctype="multipart/form-data" 表示以二进制流的方式将文件传给控制器. 需要导入的jar包有:commons-fileupload-1.2.1.jar.commons-io-1.4.jar 文件上传的步骤: (1)创建DiskFileItemFactory的对象. (2)创建ServletFileUpload的对象,需传入DiskFileItemFactory的对象.可以获得封

Servlet与SpringMVC内部实现

Jsp表达式<%= %>指令page/include动作<jsp:useBean>/param/include/plugin/setProperty......等对象application 对象是 javax.servlet.ServletContext 类的实例对象config 对象是 javax.servlet.ServletConfig 类的实例对象pageContext 对象是 javax.servlet:jsp.pageContext 类的一个实例对象request/re

filter、servlet引用springmvc注解

概述:最近做的两个项目都用到了,所以想着把它整理起来方便以后用,不多说了,现在就将代码附上 我的活动平台filter: public class SysFilter implements javax.servlet.Filter { private IUserService userService; private IBasDao basDao; @Override//在其初始化的时候获取 public void init(FilterConfig filterConfig) throws Se

servlet模拟SpringMVC

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

登录实现之servlet和SpringMVC

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px "PingFang SC" } p.p2 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px "PingFang SC"; min-height: 17.0px } span.s1 { font: 12.0px Helvetica } #知识小点: 防止乱码的字符集的设置: request.setCharacterEn

servlet与springmvc的url设置方式及映射规则

servlet容器对url的匹配过程 精确路径匹配 最长路径匹配.例子:servletA的url-pattern为/test/,而servletB的url-pattern为/test/a/,此 时访问http://localhost/test/a时,容器会选择路径最长的servlet来匹配,也就是这里的servletB. 扩展匹配,如*.action 如果前面没有找到对应的路径,如果应用定义了一个default servlet,则容器会将请求丢给default servlet filter对ur