Servlet(Server Applet)是Java Servlet的簡稱,稱為小辦事程序或辦事毗連器,用Java編寫的辦事器端程序,具有自力于平臺和和談的特征,本家兒要功能在于交互式地瀏覽和生當作數據,生當作動態Web內容。
狹義的Servlet是指Java說話實現的一個接口,廣義的Servlet是指任何實現了這個Servlet接口的類,一般環境下,人們將Servlet理解為后者。Servlet運行于撐持Java的應用辦事器中。從道理上講,Servlet可以響應任何類型的請求,但絕大大都環境下Servlet只用來擴展基于HTTP和談的Web辦事器。
最早撐持Servlet尺度的是JavaSoft的Java Web Server,此后,一些其它的基于Java的Web辦事器起頭撐持尺度的Servlet。
第一步:新建一個javaweb項目。
打開myeclipse file --》new--》web project
具體操作如下圖所示:
第二步:搭建servlet開辟情況。
新建一個servlet UserServlet.java,index.jsp在web.xml中設置裝備擺設servlet
代碼如下:
package com.test.servlet;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class UserServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
this.doPost(request, response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String sex = request.getParameter("sex");
String[] bobby = request.getParameterValues("bobby");
System.out.println("性別 :"+sex);
for (int i = 1; i <= bobby.length; i++) {
System.out.println("快樂喜愛"+i+" :"+bobby[i-1]);
}
}
}
第三步:問題闡發,解決思緒。
1、亂碼發生原因是get請求在前端處置時將中利用ISO-8859-1進行編碼而java文件和jsp文件一般都是利用UTF-8編碼,如下圖1所示
2、確認了問題解決起來也就簡單,只要利用對應的編碼對其解碼就可以解決此問題。
第四步:解決方案1在后臺利用ISO-8859-1解碼。
具體實現代碼如下所示:
package com.test.servlet;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class UserServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
this.doPost(request, response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String sex = request.getParameter("sex");
String[] bobby = request.getParameterValues("bobby");
System.out.println("性別 :"+new String(sex.getBytes("ISO-8859-1"),"utf-8"));
for (int i = 1; i <= bobby.length; i++) {
System.out.println("快樂喜愛"+i+" :"+new String(bobby[i-1].getBytes("ISO-8859-1"),"utf-8"));
}
}
}
第五步:利用post體例提交表單。
<form action="/servlet/userServlet.do" method="post">
快樂喜愛1:<input type="text" name="bobby"><br/>
快樂喜愛2:<input type="text" name="bobby"><br/>
快樂喜愛3:<input type="text" name="bobby"><br/>
快樂喜愛4:<input type="text" name="bobby"><br/>
性別:<input type="text" name="sex"><br/>
<input type="submit" value="提交">
</form>
第六部:傳輸之前利用編碼。
1、js前端編碼
encodeURI 方式 編碼
decodeURI 方式 解碼
2、java后臺編碼
import java.net.URLDecoder;
import java.net.URLEncoder;
//URLEncoder.encode("亂碼","UTF8");編碼
//URLDecoder.decode("亂碼","UTF-8")解碼
0 篇文章
如果覺得我的文章對您有用,請隨意打賞。你的支持將鼓勵我繼續創作!