• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

Struts2框架04 struts和spring整合

java 搞代码 4年前 (2022-01-09) 40次浏览 已收录 0个评论
文章目录[隐藏]

目录

  1 servlet 和 filter 的异同

  2 内存中的字符编码

  3 gbk和utf-8的特点

  4 struts和spring的整合

  5 struts和spring的整合步骤

  6 springIOC在action类中的使用

  7 注解回顾

1 servlet 和 filter 的异同

  1.1 相同点

    filter完全可以代替servlet使用,但是filter中的某些功能servlet不能实现,而servlet的所有功能filter都能实现

  1.2 不同点

    1.2.1 概念上

      servlet 是运行在服务器端的程序,动态生成web页面

      filter 是一段可以复用的代码,不能生成请求和响应,但是可以对相应和请求做相应的处理

    1.2.2 生命周期上

      servlet 是在web服务器启动或web服务器接收到第一次请求时利用构造器实例化servlet,然后调用init方法进行初始化,之后的每次请求会调用doGet或者doPost方法进行处理;当关闭服务器的时候,调用destroy方法销毁实例

      filter 是在web服务器启动时利用构造器实例化filter,然后调用init方法进行初始化,之后的每次请求调用doFilter方法进行处理,关闭服务器的时候,调用destroy方法销毁实例

    1.2.3 类型不同

      servlet是类、filter是接口

  1.3 servlet 、filter的编程实现   

<span style="color: #008080"> 1</span> <span style="color: #0000ff">package</span><span style="color: #000000"> cn.xiangxu;</span><span style="color: #008080"> 2</span> <span style="color: #008080"> 3</span> <span style="color: #0000ff">import</span><span style="color: #000000"> java.io.IOException;</span><span style="color: #008080"> 4</span> <span style="color: #0000ff">import</span><span style="color: #000000"> java.io.PrintWriter;</span><span style="color: #008080"> 5</span> <span style="color: #008080"> 6</span> <span style="color: #0000ff">import</span><span style="color: #000000"> javax.servlet.ServletException;</span><span style="color: #008080"> 7</span> <span style="color: #0000ff">import</span><span style="color: #000000"> javax.servlet.http.HttpServlet;</span><span style="color: #008080"> 8</span> <span style="color: #0000ff">import</span><span style="color: #000000"> javax.servlet.http.HttpServletRequest;</span><span style="color: #008080"> 9</span> <span style="color: #0000ff">import</span><span style="color: #000000"> javax.servlet.http.HttpServletResponse;</span><span style="color: #008080">10</span> <span style="color: #008080">11</span> <span style="color: #008000">/**</span><span style="color: #008080">12</span> <span style="color: #008000"> * Servlet implementation class DemoServlet</span><span style="color: #008080">13</span>  <span style="color: #008000">*/</span><span style="color: #008080">14</span> <span style="color: #0000ff">public</span> <span style="color: #0000ff">class</span> DemoServlet <span style="color: #0000ff">extends</span><span style="color: #000000"> HttpServlet {</span><span style="color: #008080">15</span>     <span style="color: #0000ff">private</span> <span style="color: #0000ff">static</span> <span style="color: #0000ff">final</span> <span style="color: #0000ff">long</span> serialVersionUID = 1L<span style="color: #000000">;</span><span style="color: #008080">16</span>     <span style="color: #008080">17</span>     <span style="color: #008000">/**</span><span style="color: #008080">18</span> <span style="color: #008000">     * </span><span style="color: #808080">@see</span><span style="color: #008000"> HttpServlet#HttpServlet()</span><span style="color: #008080">19</span>      <span style="color: #008000">*/</span><span style="color: #008080">20</span>     <span style="color: #0000ff">public</span><span style="color: #000000"> DemoServlet() {</span><span style="color: #008080">21</span>         <span style="color: #0000ff">super</span><span style="color: #000000">();</span><span style="color: #008080">22</span>         System.out.println("01 利用构造器实例化"<span style="color: #000000">);</span><span style="color: #008080">23</span> <span style="color: #000000">    }</span><span style="color: #008080">24</span>     <span style="color: #008080">25</span> <span style="color: #000000">    @Override</span><span style="color: #008080">26</span>     <span style="color: #0000ff">public</span> <span style="color: #0000ff">void</span> init() <span style="color: #0000ff">throws</span><span style="color: #000000"> ServletException {</span><span style="color: #008080">27</span>         <span style="color: #0000ff">super</span><span style="color: #000000">.init();</span><span style="color: #008080">28</span>         System.out.println("02 利用init方法初始化"<span style="color: #000000">);</span><span style="color: #008080">29</span> <span style="color: #000000">    }</span><span style="color: #008080">30</span> <span style="color: #008080">31</span>     <span style="color: #008000">/**</span><span style="color: #008080">32</span> <span style="color: #008000">     * </span><span style="color: #808080">@see</span><span style="color: #008000"> HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)</span><span style="color: #008080">33</span>      <span style="color: #008000">*/</span><span style="color: #008080">34</span>     <span style="color: #0000ff">protected</span> <span style="color: #0000ff">void</span> doGet(HttpServletRequest request, HttpServletResponse response) <span style="color: #0000ff">throws</span><span style="color: #000000"> ServletException, IOException {</span><span style="color: #008080">35</span>         System.out.println("03 调用处理方法"<span style="color: #000000">);</span><span style="color: #008080">36</span>         <span style="color: #008080">37</span>         response.setContentType("text/html;charset:utf-8"); <span style="color: #008000">//</span><span style="color: #008000"> 设置消息头部分信息</span><span style="color: #008080">38</span>         response.setCharacterEncoding("utf-8"<span style="color: #000000">);</span><span style="color: #008080">39</span>         <span style="color: #008080">40</span>         PrintWriter out =<span style="color: #000000"> response.getWriter();</span><span style="color: #008080">41</span>         out.println("hello servlet"<span style="color: #000000">);</span><span style="color: #008080">42</span> <span style="color: #000000">        out.close();</span><span style="color: #008080">43</span> <span style="color: #000000">    } </span><span style="color: #008080">44</span>     <span style="color: #008080">45</span> <span style="color: #000000">    @Override</span><span style="color: #008080">46</span>     <span style="color: #0000ff">public</span> <span style="color: #0000ff">void</span><span style="color: #000000"> destroy() {</span><span style="color: #008080">47</span>         <span style="color: #0000ff">super</span><span style="color: #000000">.destroy();</span><span style="color: #008080">48</span>         System.out.println("04 利用destroy方法销毁"<span style="color: #000000">);</span><span style="color: #008080">49</span> <span style="color: #000000">    }</span><span style="color: #008080">50</span> <span style="color: #008080">51</span>     <span style="color: #008000">/**</span><span style="color: #008080">52</span> <span style="color: #008000">     * </span><span style="color: #808080">@see</span><span style="color: #008000"> HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)</span><span style="color: #008080">53</span>      <span style="color: #008000">*/</span><span style="color: #008080">54</span>     <span style="color: #0000ff">protected</span> <span style="color: #0000ff">void</span> doPost(HttpServletRequest request, HttpServletResponse response) <span style="color: #0000ff">throws</span><span style="color: #000000"> ServletException, IOException {</span><span style="color: #008080">55</span>         <span style="color: #008000">//</span><span style="color: #008000"> TODO Auto-generated method stub</span><span style="color: #008080">56</span> <span style="color: #000000">        doGet(request, response);</span><span style="color: #008080">57</span> <span style="color: #000000">    }</span><span style="color: #008080">58</span> <span style="color: #008080">59</span> }

DemoServlet

<span style="color: #008080"> 1</span> <span style="color: #0000ff">package</span><span style="color: #000000"> cn.xiangxu;</span><span style="color: #008080"> 2</span> <span style="color: #008080"> 3</span> <span style="color: #0000ff">import</span><span style="color: #000000"> java.io.IOException;</span><span style="color: #008080"> 4</span> <span style="color: #0000ff">import</span><span style="color: #000000"> java.io.PrintWriter;</span><span style="color: #008080"> 5</span> <span style="color: #008080"> 6</span> <span style="color: #0000ff">import</span><span style="color: #000000"> javax.servlet.Filter;</span><span style="color: #008080"> 7</span> <span style="color: #0000ff">import</span><span style="color: #000000"> javax.servlet.FilterChain;</span><span style="color: #008080"> <a style="color:transparent">本文来源gao($daima.com搞@代@#码$网</a>8</span> <span style="color: #0000ff">import</span><span style="color: #000000"> javax.servlet.FilterConfig;</span><span style="color: #008080"> 9</span> <span style="color: #0000ff">import</span><span style="color: #000000"> javax.servlet.ServletException;</span><span style="color: #008080">10</span> <span style="color: #0000ff">import</span><span style="color: #000000"> javax.servlet.ServletRequest;</span><span style="color: #008080">11</span> <span style="color: #0000ff">import</span><span style="color: #000000"> javax.servlet.ServletResponse;</span><span style="color: #008080">12</span> <span style="color: #0000ff">import</span><span style="color: #000000"> javax.servlet.http.HttpServletResponse;</span><span style="color: #008080">13</span> <span style="color: #008080">14</span> <span style="color: #008000">/**</span><span style="color: #008080">15</span> <span style="color: #008000"> * Servlet Filter implementation class DemoFilter</span><span style="color: #008080">16</span>  <span style="color: #008000">*/</span><span style="color: #008080">17</span> <span style="color: #0000ff">public</span> <span style="color: #0000ff">class</span> DemoFilter <span style="color: #0000ff">implements</span><span style="color: #000000"> Filter {</span><span style="color: #008080">18</span> <span style="color: #008080">19</span>     <span style="color: #008000">/**</span><span style="color: #008080">20</span> <span style="color: #008000">     * Default constructor. </span><span style="color: #008080">21</span>      <span style="color: #008000">*/</span><span style="color: #008080">22</span>     <span style="color: #0000ff">public</span><span style="color: #000000"> DemoFilter() {</span><span style="color: #008080">23</span>         System.out.println("01 利用构造器实例化"<span style="color: #000000">);</span><span style="color: #008080">24</span> <span style="color: #000000">    }</span><span style="color: #008080">25</span>     <span style="color: #008080">26</span>     <span style="color: #008000">/**</span><span style="color: #008080">27</span> <span style="color: #008000">     * </span><span style="color: #808080">@see</span><span style="color: #008000"> Filter#init(FilterConfig)</span><span style="color: #008080">28</span>      <span style="color: #008000">*/</span><span style="color: #008080">29</span>     <span style="color: #0000ff">public</span> <span style="color: #0000ff">void</span> init(FilterConfig fConfig) <span style="color: #0000ff">throws</span><span style="color: #000000"> ServletException {</span><span style="color: #008080">30</span>         System.out.println("02 利用init方法初始化"<span style="color: #000000">);</span><span style="color: #008080">31</span> <span style="color: #000000">    }</span><span style="color: #008080">32</span>     <span style="color: #008080">33</span>     <span style="color: #008000">/**</span><span style="color: #008080">34</span> <span style="color: #008000">     * </span><span style="color: #808080">@see</span><span style="color: #008000"> Filter#doFilter(ServletRequest, ServletResponse, FilterChain)</span><span style="color: #008080">35</span>      <span style="color: #008000">*/</span><span style="color: #008080">36</span>     <span style="color: #0000ff">public</span> <span style="color: #0000ff">void</span> doFilter(ServletRequest request, ServletResponse resp, FilterChain chain) <span style="color: #0000ff">throws</span><span style="color: #000000"> IOException, ServletException {</span><span style="color: #008080">37</span>         System.out.println("03 调用处理方法"<span style="color: #000000">);</span><span style="color: #008080">38</span>         <span style="color: #008080">39</span>         HttpServletResponse response =<span style="color: #000000"> (HttpServletResponse)resp;</span><span style="color: #008080">40</span>         <span style="color: #008080">41</span>         response.setContentType("text/html;charset:utf-8"<span style="color: #000000">);</span><span style="color: #008080">42</span>         response.setCharacterEncoding("utf-8"<span style="color: #000000">);</span><span style="color: #008080">43</span>         <span style="color: #008080">44</span>         PrintWriter out =<span style="color: #000000"> response.getWriter();</span><span style="color: #008080">45</span>         out.println("hello filter"<span style="color: #000000">);</span><span style="color: #008080">46</span> <span style="color: #000000">        out.close();</span><span style="color: #008080">47</span> <span style="color: #000000">    }</span><span style="color: #008080">48</span>     <span style="color: #008080">49</span>     <span style="color: #008000">/**</span><span style="color: #008080">50</span> <span style="color: #008000">     * </span><span style="color: #808080">@see</span><span style="color: #008000"> Filter#destroy()</span><span style="color: #008080">51</span>      <span style="color: #008000">*/</span><span style="color: #008080">52</span>     <span style="color: #0000ff">public</span> <span style="color: #0000ff">void</span><span style="color: #000000"> destroy() {</span><span style="color: #008080">53</span>         System.out.println("04 利用destroy方法销毁"<span style="color: #000000">);</span><span style="color: #008080">54</span> <span style="color: #000000">    }</span><span style="color: #008080">55</span>     <span style="color: #008080">56</span> }

DemoFilter

<span style="color: #008080"> 1</span> <span style="color: #0000ff"><?</span><span style="color: #ff00ff">xml version="1.0" encoding="UTF-8"</span><span style="color: #0000ff">?></span><span style="color: #008080"> 2</span> <span style="color: #0000ff"><</span><span style="color: #800000">web-app </span><span style="color: #ff0000">xmlns:xsi</span><span style="color: #0000ff">="http://www.w3.org/2001/XMLSchema-instance"</span><span style="color: #ff0000"> xmlns</span><span style="color: #0000ff">="http://java.sun.com/xml/ns/javaee"</span><span style="color: #ff0000"> xsi:schemaLocation</span><span style="color: #0000ff">="http://java.sun.com/xml/ns/javaee "</span><span style="color: #ff0000"> id</span><span style="color: #0000ff">="WebApp_ID"</span><span style="color: #ff0000"> version</span><span style="color: #0000ff">="2.5"</span><span style="color: #0000ff">></span><span style="color: #008080"> 3</span>   <span style="color: #0000ff"><</span><span style="color: #800000">display-name</span><span style="color: #0000ff">></span>servletVsFilter<span style="color: #0000ff"></</span><span style="color: #800000">display-name</span><span style="color: #0000ff">></span><span style="color: #008080"> 4</span>   <span style="color: #0000ff"><</span><span style="color: #800000">welcome-file-list</span><span style="color: #0000ff">></span><span style="color: #008080"> 5</span>     <span style="color: #0000ff"><</span><span style="color: #800000">welcome-file</span><span style="color: #0000ff">></span>index.html<span style="color: #0000ff"></</span><span style="color: #800000">welcome-file</span><span style="color: #0000ff">></span><span style="color: #008080"> 6</span>     <span style="color: #0000ff"><</span><span style="color: #800000">welcome-file</span><span style="color: #0000ff">></span>index.htm<span style="color: #0000ff"></</span><span style="color: #800000">welcome-file</span><span style="color: #0000ff">></span><span style="color: #008080"> 7</span>     <span style="color: #0000ff"><</span><span style="color: #800000">welcome-file</span><span style="color: #0000ff">></span>index.jsp<span style="color: #0000ff"></</span><span style="color: #800000">welcome-file</span><span style="color: #0000ff">></span><span style="color: #008080"> 8</span>     <span style="color: #0000ff"><</span><span style="color: #800000">welcome-file</span><span style="color: #0000ff">></span>default.html<span style="color: #0000ff"></</span><span style="color: #800000">welcome-file</span><span style="color: #0000ff">></span><span style="color: #008080"> 9</span>     <span style="color: #0000ff"><</span><span style="color: #800000">welcome-file</span><span style="color: #0000ff">></span>default.htm<span style="color: #0000ff"></</span><span style="color: #800000">welcome-file</span><span style="color: #0000ff">></span><span style="color: #008080">10</span>     <span style="color: #0000ff"><</span><span style="color: #800000">welcome-file</span><span style="color: #0000ff">></span>default.jsp<span style="color: #0000ff"></</span><span style="color: #800000">welcome-file</span><span style="color: #0000ff">></span><span style="color: #008080">11</span>   <span style="color: #0000ff"></</span><span style="color: #800000">welcome-file-list</span><span style="color: #0000ff">></span><span style="color: #008080">12</span>   <span style="color: #0000ff"><</span><span style="color: #800000">servlet</span><span style="color: #0000ff">></span><span style="color: #008080">13</span>     <span style="color: #0000ff"><</span><span style="color: #800000">servlet-name</span><span style="color: #0000ff">></span>servlet<span style="color: #0000ff"></</span><span style="color: #800000">servlet-name</span><span style="color: #0000ff">></span><span style="color: #008080">14</span>     <span style="color: #0000ff"><</span><span style="color: #800000">servlet-class</span><span style="color: #0000ff">></span>cn.xiangxu.DemoServlet<span style="color: #0000ff"></</span><span style="color: #800000">servlet-class</span><span style="color: #0000ff">></span><span style="color: #008080">15</span>   <span style="color: #0000ff"></</span><span style="color: #800000">servlet</span><span style="color: #0000ff">></span><span style="color: #008080">16</span>   <span style="color: #0000ff"><</span><span style="color: #800000">servlet-mapping</span><span style="color: #0000ff">></span><span style="color: #008080">17</span>     <span style="color: #0000ff"><</span><span style="color: #800000">servlet-name</span><span style="color: #0000ff">></span>servlet<span style="color: #0000ff"></</span><span style="color: #800000">servlet-name</span><span style="color: #0000ff">></span><span style="color: #008080">18</span>     <span style="color: #0000ff"><</span><span style="color: #800000">url-pattern</span><span style="color: #0000ff">></span>/servlet.do<span style="color: #0000ff"></</span><span style="color: #800000">url-pattern</span><span style="color: #0000ff">></span><span style="color: #008080">19</span>   <span style="color: #0000ff"></</span><span style="color: #800000">servlet-mapping</span><span style="color: #0000ff">></span><span style="color: #008080">20</span>   <span style="color: #008080">21</span>   <span style="color: #0000ff"><</span><span style="color: #800000">filter</span><span style="color: #0000ff">></span><span style="color: #008080">22</span>     <span style="color: #0000ff"><</span><span style="color: #800000">filter-name</span><span style="color: #0000ff">></span>filter<span style="color: #0000ff"></</span><span style="color: #800000">filter-name</span><span style="color: #0000ff">></span><span style="color: #008080">23</span>     <span style="color: #0000ff"><</span><span style="color: #800000">filter-class</span><span style="color: #0000ff">></span>cn.xiangxu.DemoFilter<span style="color: #0000ff"></</span><span style="color: #800000">filter-class</span><span style="color: #0000ff">></span><span style="color: #008080">24</span>   <span style="color: #0000ff"></</span><span style="color: #800000">filter</span><span style="color: #0000ff">></span><span style="color: #008080">25</span>   <span style="color: #0000ff"><</span><span style="color: #800000">filter-mapping</span><span style="color: #0000ff">></span><span style="color: #008080">26</span>     <span style="color: #0000ff"><</span><span style="color: #800000">filter-name</span><span style="color: #0000ff">></span>filter<span style="color: #0000ff"></</span><span style="color: #800000">filter-name</span><span style="color: #0000ff">></span><span style="color: #008080">27</span>     <span style="color: #0000ff"><</span><span style="color: #800000">url-pattern</span><span style="color: #0000ff">></span>/filter.do<span style="color: #0000ff"></</span><span style="color: #800000">url-pattern</span><span style="color: #0000ff">></span><span style="color: #008080">28</span>   <span style="color: #0000ff"></</span><span style="color: #800000">filter-mapping</span><span style="color: #0000ff">></span><span style="color: #008080">29</span> <span style="color: #0000ff"></</span><span style="color: #800000">web-app</span><span style="color: #0000ff">></span>

web.xml


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:Struts2框架04 struts和spring整合

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址