继承HttpServlet实现接收和响应来自Web客户端的请求
HttpServlet正式开发中若要使用Servlet,一般来说直接继承HttpServlet实现,因为该类实现了HTTP协议,而当前WEB开发使用的就是HTTP协议。HttpServlet可以针对不同的请求来进行处理,WEB开发中最常用的就是GET和POST请求。HttpServlet类中的方法英文版我这里只简单介绍一下常用的几个//处理get请求void doGet(HttpS...
HttpServlet
正式开发中若要使用Servlet,一般来说直接继承HttpServlet实现,因为该类实现了HTTP协议,而当前WEB开发使用的就是HTTP协议。HttpServlet可以针对不同的请求来进行处理,WEB开发中最常用的就是GET和POST请求。
HttpServlet类中的方法英文版
我这里只简单介绍一下常用的几个
//处理get请求
void doGet(HttpServletRequest req,HttpServletResponse resp)
//处理post请求
void doPost(HttpServletRequest req,HttpServletResponse resp)
//处理客户端发送过来的请求,若所有请求方式都是同样的处理逻辑,可重写此方法
void service(HttpServletRequest req,HttpServletResponse resp)
我们常继承HttpServlet实现一个Servlet,重写对应请求的处理方法以实现接收和响应来自Web客户端的请求
HttpServletRequest
HttpServletRequest是ServletRequest接口的子接口,表示HTTP协议的请求对象。既然HttpServletRequest是HTTP的请求对象,那么该接口中包含了获取各自请求信息的方法。
我只描述几个常用的API,这里我就不贴英文的API了,有兴趣的可以自行查阅API文档
//根据参数名称,获取对应参数的值.
String getParameter(String name)
//根据参数名称,获取该参数的多个值.
String[] getParameterValues(String name)
//获取所有请求参数的名字Enumeration<String> getParameterNames()
//返回请求参数组成的Map集合.
// key:参数名称
// value:参数值,封装在String数组中.
Map<String,String[]> getParameterMap()
其他API:
//返回浏览器地址栏请求的URL
StringBuffer getRequestURL()
//返回当前请求的客户端IP
String getRemoteAddr()
//返回当前请求的资源名称,上下文路径/资源名
String getRequestURI()
//返回当前请求的上下文路径
String getContextPath()
//返回当前请求的Servlet路径
String getServletPath()
//根据请求头返回当前请求对应的请求头的值
String getHeader(String name)
//返回当前请求的请求方式
String getMethod()
接收数据乱码
若前台页面传输的是中文,则可能出现乱码
先将接收的数据使用ISO-8859-1转换成字节数组 byte[] b
req.getParameter(“name”).getBytes(“ISO-8859-1”);
再将字节数组转换成中文
String result=new String(b,”UTF-8”);
其他解决方式
设置请求编码,只能解决POST请求 req.setCharsetEncoding(“UTF-8”);
修改Tomcat中server.xml中的编码,只能解决GET请求
HttpServletResponse
HttpServletResponse是ServletResponse接口的子接口,表示HTTP协议的响应对象。既然HttpServletResPonse是HTTP的响应对象,那么该接口中包含了针对各自请求进行响应的方法。响应无非就是将数据输出到客户端,在IO中流的输出无非就是两种:字节输出流和字符输出流。
//设置响应编码格式
void setCharsetEncoding(String charset)
//设置响应的内容的类型,可同时设置编码
void setContentType(String type)
//获取字符输出流
PrintWriter getWriter()
//获取字节输出流
ServletOutputStream getOutputStream()
注意:服务器响应的数据是需要在客户端显示的,若输出的是中文,则需要编码
设置响应内容的文本和编码格式
resp.setContentType(“text/html;charset=utf-8”);
setContentType(“text/html;charset=utf-8”)等同于以下两句代码
resp.setCharsetEncoding(“utf-8”); resp.setContentType(“text/html”);
Servlet访问路径配置
url-pattern中配置多个访问路径
1.一个servlet-mapping中配置多个url-pattern
2.配置多个servlet-mapping
3.使用通配符
4.通配符+后缀名
注意:对后缀名进行配置,url-pattern中不需要使用/
一般后缀名使用.do、.action结尾,不要使用.html、.jsp之类的结尾,因为当前配置的是针对servlet的访问,若存在针对html的访问,可能会访问不到html页面
更多推荐



所有评论(0)