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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM