现在的位置: 主页 > 商讯 > 文章列表

Web---演示Servlet的相关类、表单多参数接收、文件上

作者:兴义市全盈商贸有限公司 来源:www.cnlianguo.com 发布时间:2017-09-05 12:27:34
 

Web---演示Servlet的相关类、表单多参数接收、文件上传简单入门

Servlet的其他相关类:
ServletConfig – 代表Servlet的初始化配置参数。
ServletContext – 代表整个Web项目。
ServletRequest – 代表用户的请求。
ServletResponse – 代表用户的响应。

本篇博客讲解:
ServletRequest – 代表用户的请求。
ServletResponse – 代表用户的响应。
表单中的多选框参数接收。
文件的上传技术。

ServletRequest :

ServletRequest 和 ServletResponse 差不多。一个代表用户的请求,一个代表用户的响应!
service方法中的两个重要参数。
ServletRequest – 用接收用户的请求。它的作用是:
可获取请求头信息。
可设置请请求的字符编码。
可获得用户传递的参数。Post或get。
可获取远程(即访问者)的IP地址。
可获取输入流,如用户上传文件、相片等。
它的一个子接口:javax.servlet.http.HttpServletRequest
ServletResponse – 用于向用户返回数据。
设置响应类型- contentType
设置编码-setCharacterEncoding
获取输出流。
它的一个子接口:javax.servlet.http.HttpServletResponse

index.jsp: <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> Request和Response的用法演示 web.xml: Request和Response的用法演示 RequestDemo cn.hncu.servlets.RequestDemo RequestDemo /requestDemo index.jsp RequestDemo.java package cn.hncu.servlets; import java.io.IOException; import java.io.PrintWriter; import java.util.Date; import java.util.Locale; import java.util.Random; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** * @author 陈浩翔 * * 2016-7-22 */ public class RequestDemo extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request, response); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //告诉浏览器我响应的是什么类型的文件,编码是什么 response.setContentType("text/html;charset=utf-8"); PrintWriter out = response.getWriter(); out.println(""); out.println(" "); out.println(" "); out.println(""); out.print("request:"+request+"
"); Random r = new Random(new Date().getTime()); int a = r.nextInt(200);//获取一个[0,200)的随机整数 //每一次请求,request对象是新的(之前放进去的属性是属于另一个request对象),因此这里读取的属性是null.这个只能在web内部传递! //如果是转发,那么request对象的共享的,也就是同一个,在这种情况下,里面的属性可以共用 if(request.getAttribute("name")==null){ System.out.println("放入:"+a); request.setAttribute("name", a); } out.print("
"+request.getAttribute("name")); //注意:setCharacterEncoding()--该方法只对post方式有效,因为它只设置请求体(正文)中内容的读取编码 //以下演示setCharacterEncoding()和getCharacterEncoding() request.setCharacterEncoding("utf-8");//设置用request对象中读取信息的编码格式--即下面的是按照什么编码格式把数据读取出来 //有时,我们使用转发,就需要在别的处理类中读取之前所设的编码 //String charset = request.getCharacterEncoding();//这里肯定是utf-8了,刚刚我们设了。 //我们如果没有设编码,则默认(Toncat)是(ISO8859-1),返回的是null. //System.out.println("charset:"+charset); //以下演示getContentType()---如果是get提交方式则返回null. //如果是post方式提交则返回:application/x-www-form-urlencoded String contentType = request.getContentType(); out.print("
contentType="+contentType); //接收用户名--如果要接收中文,必须先设置编码 request.setCharacterEncoding() String name = request.getParameter("name"); out.print("
name="+name); //以下演示通过getMethod()判断请求方式,同时演示Get方式下的中文乱码解决!! //但是注意!这个并不可靠!有的浏览器会不兼容的!-如果一定要用get方式,而且还要解决中文乱码,那么久明确告诉用户,用什么浏览器访问! if(request.getMethod().equals("GET")){ System.out.println("get..."); //该读取中文的方式在360浏览器和火狐浏览器都可以!但是IE不行。总之,在get方式下最好不要传递中文!不可靠的。 name = new String(name.getBytes("iso8859-1"), "utf-8");//如果是中文。Tomcat直接就用iso8859-1解码了,属于解码错误,如果要显示中文,我们就把它再还原! System.out.println(name); out.print("
GET-name:"+name); } //获取客户端的国际化信息---浏览器Internet选项中设置的语言环境! Locale loc = request.getLocale();//Locale 对象表示了特定的地理、政治和文化地区。需要 Locale 来执行其任务的操作称为语言环境敏感的 操作,它使用 Locale 为用户量身定制信息。 out.print("
Country:"+loc.getCountry()); out.print("
DisplayCountry:"+loc.getDisplayCountry()); out.print("
DisplayLanguage:"+loc.getDisplayLanguage()); out.print("
DisplayName:"+loc.getDisplayName()); /*我的客户端环境 Country:CN DisplayCountry:中国 DisplayLanguage:中文 DisplayName:中文 (中国) */ out.println(""); out.println(""); out.flush(); out.close(); } }

里面很多知识点,我都在RequestDemo.java文件的注释中写了!注意看就行,演示结果就不贴了。

企业建站2800元起,携手武汉肥猫科技,做一个有见地的颜值派!更多优惠请戳:武汉网站推广 http://www.feimao666.com

  • 上一篇:Go 语言切片(Slice)
  • 下一篇:最后一页
  •