日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > web前端 > htmlcss > JSP詳細篇――Servlet過濾器和監聽器(二)

JSP詳細篇――Servlet過濾器和監聽器(二)

來源:程序員人生   發布時間:2014-12-11 08:39:15 閱讀次數:3855次

4.字符編碼過濾器

在Java Web開發中,由于Web容器內部所使用的編碼格式其實不支持中文,所以,處理閱讀器要求的中文數據會出現亂碼。

Web容器使用的編碼格式是ISO⑻859⑴,所以在Web利用的業務處理中也會使用ISO⑻859⑴的編碼格式。雖然閱讀器提交要求使用的中文編碼格式是UTF⑻,但是經業務處理中的ISO⑻859⑴編碼,就會出現亂碼。在開發中,處理此問題的方法是:通過過濾器來處理字符編碼。

范例:

實現圖書信息的添加功能,并創建字符編碼過濾器,避免中文亂碼出現。

(1)創建字符編碼過濾器,其名稱為EncodingFilter,該類實現了javax.servlet.Filter接口,并在doFilter()方法中對要求中的中文的字符編碼格式進行設置。

package com.zgy.filter;

 

import java.io.IOException;

 

import javax.servlet.Filter;

import javax.servlet.FilterChain;

import javax.servlet.FilterConfig;

import javax.servlet.ServletException;

import javax.servlet.ServletRequest;

import javax.servlet.ServletResponse;

 

public class EncodingFilter implements Filter {

String encoding = null; // 字符編碼

 

@Override

public void destroy() {

// TODO Auto-generated method stub

encoding = null;

}

 

@Override

public void doFilter(ServletRequest request, ServletResponse response,

FilterChain chain) throws IOException, ServletException {

// TODO Auto-generated method stub

if (encoding != null) {

request.setCharacterEncoding(encoding); //設置resquest字符編碼

response.setContentType("text/html;charset=" + encoding); //設置response字符編碼

}

chain.doFilter(request, response); //傳遞給下1個過濾器

}

 

@Override

public void init(FilterConfig filterConfig) throws ServletException {

// TODO Auto-generated method stub

encoding = filterConfig.getInitParameter("encoding"); //獲得初始化參數encoding

}

 

}

 

(2)配置過濾器EncodingFilter

 

<filter>

<filter-name>EncodingFilter</filter-name>

<filter-class>com.zgy.filter.EncodingFilter</filter-class>

<init-param>

<param-name>encoding</param-name>

<param-value>UTF⑻</param-value>

</init-param>

</filter>

<filter-mapping>

<filter-name>EncodingFilter</filter-name>

<url-pattern>/*</url-pattern>

</filter-mapping>

 

(3)創建名為BookServlet類,該類繼承了HttpServlet,是處理添加圖書信息要求的Servlet對象。

 

package com.zgy.servlet;

 

import java.io.IOException;

import java.io.PrintWriter;

 

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

 

public class BookServlet extends HttpServlet {

private static final long serialVersionUID = 1L;

 

protected void doGet(HttpServletRequest request,

HttpServletResponse response) throws ServletException, IOException {

// 處理get要求

doPost(request, response);

}

 

protected void doPost(HttpServletRequest request,

HttpServletResponse response) throws ServletException, IOException {

PrintWriter out = response.getWriter(); //獲得PrintWriter

String id = request.getParameter("id"); //獲得圖書編號

String name = request.getParameter("name"); //獲得圖書名稱

String author = request.getParameter("author"); //獲得圖書作者

String price = request.getParameter("price");

out.print("<h2>圖書信息添加成功</h2><hr>");

out.print("圖書編號:"+id+"</br>");

out.print("圖書名稱:"+name+"</br>");

out.print("圖書作者:"+author+"</br>");

out.print("圖書價格:"+price+"</br>");

out.flush();

out.close();

}

 

}

 

PS:

在Java Web開發中,通常情況下,Servlet所處理的要求是GET或POST,所以可以在doGet()方法中調用doPost()方法,把業務代碼寫到doPost()方法中,也能夠在doPost()方法中調用doGet()方法,把業務處理代碼寫到doGet()方法中,不管Servlet接受的要求類型是GET還是POST,Servlet都會對其進行處理

 

(4)配置BookServlet

 

 <servlet>

   <servlet-name>BookServlet</servlet-name>

   <servlet-class>com.zgy.servlet.BookServlet</servlet-class>

  </servlet>

  <servlet-mapping>

   <servlet-name>BookServlet</servlet-name>

   <url-pattern>/BookServlet</url-pattern>

  </servlet-mapping>

 

(5)創建book.jsp頁面,他是程序中的主頁,該頁面主要用于放置添加圖書信息的表單。

<%@ page language="java" import="java.util.*" pageEncoding="UTF⑻"%>

<%

String path = request.getContextPath();

String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";

%>

 

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

  <head>

    <base href="<%=basePath%>">

    

    <title>book page</title>

<meta http-equiv="pragma" content="no-cache">

<meta http-equiv="cache-control" content="no-cache">

<meta http-equiv="expires" content="0">    

<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">

<meta http-equiv="description" content="This is my page">

<!--

<link rel="stylesheet" type="text/csshref="styles.css">

-->

  </head>

  

  <body>

   <form action="BookServlet" method="post">

    <table align="center" border="1" width="350">

    <tr>

    <td class="2" align="center" colspan="2">

    <h2>添加圖書信息</h2>

    </td>

    </tr>

    <tr>

    <td align="right">圖書編號:</td>

    <td>

    <input type="text" name="id">

    </td>

    </tr>

    <tr>

    <td align="right">圖書名稱:</td>

    <td>

    <input type="text" name="name">

    </td>

    </tr>

    <tr>

    <td align="right">圖書作者:</td>

    <td>

    <input type="text" name="author">

    </td>

    </tr>

    <tr>

    <td align="right">圖書價格:</td>

    <td>

    <input type="text" name="price">

    </td>

    </tr>

    <tr>

    <td class="2" align="center" colspan="2">

    <input type="submit" value="添  加"/>

    </td>

    </tr>

    </table>

   </form>

  </body>

</html>







 

 

 

 

生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 偷拍 中文 亚洲 欧美 动漫 | 欧美精品久久 | 成人爽a毛片免费啪啪动漫 成人欧美一区二区三区黑人孕妇 | 国产精品自拍小视频 | 99久久99热这里只有精品 | 男女深夜网站 | 日韩在线高清 | 黄色美女免费网站 | 国产不卡在线观看 | 日韩一区二区在线播放 | 精品美女久久久久久免费 | 国产网站视频 | 国产成人av一区二区三区 | 欧美精品1区2区3区 91久久精品一区二区 | 国产精品第100页 | 午夜成人在线视频 | 曰本一区二区三区 | 欧美日韩精品一区二区 | 日韩精品不卡 | 日韩成人一区 | 亚州国产精品 | 国产成人精品一区二区三区视频 | 麻豆成人久久精品二区三区小说 | 91啦蝌蚪视频 | a级网站 | 日韩av网址大全 | 污污的网站在线观看 | 国产精品久久久久久久久久久久冷 | 美女视频久久 | 国产在线看片 | 爱搞逼综合网 | 日本在线免费观看 | 黄色免费大片 | 久久精品国产一区二区 | 亚洲一区二区精品在线 | 亚洲成人福利 | 日韩一区二区三区精品视频 | 欧美成人免费在线视频 | 亚洲精品久久久久久久久久久久久久 | 色婷婷精品国产一区二区三区 | 日韩精品在线观看视频 |