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