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 篇文章
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!