jsp HttpServlet的doGet和doPost方法

HttpServlet类除了init、service、destroy方法外,还有两个很重要的方法,doGet和doPost。

当服务器创建servlet对象后,该对象会调用init方法初始化自己,以后每当服务器再接受一个servlet请求时,就会产生一个新线程,并在这个线程中让servlet对象调用service方法,而HttpServlet类所给出的service方法的功能是检查HTTP请求类型(get、post等),并在service方法中根据用户的请求方式,在service方法中对应地再调用doGet或doPost,因此,在编写Servlet类(HttpServlet类的一个子类)时,不必重写service方法来响应用户,直接继承service方法即可。

可以在Servlet中重写doGet方法和doPost方法来响应用户的请求,这样可以增加响应的灵活性,并降低服务器的负担。如果不论用户请求的类型是post和get,服务器的处理过程完全相同,那么可以只在doPost中编写处理过程,然后再doGet中在调用doPost方法即可,或者相反。处理若不,则需在来年改革方法中分别编写相应的处理代码。

例子:

用户可以使用表单请求名字为“ok”的servlet对象,并提交字符串,其中一个表单提交方式是post,另一个提交方式是get,当表单提交方式是post时,则输出表单提交的字符串的长度;当为post时,除了输出长度外,并判断字符串中前缀是否为“helllo”

web.xml

[cc lang=”xml”]

ok
cn.bcoder.Show


ok
/show

[/cc]
 

example.jsp

[cc lang=”java”]

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>


输入字符串,提交给servlet(Post方式):



输入字符串,提交给servlet(Get方式):




[/cc]

Show.java

 
[cc lang=”java”]

package cn.bcoder;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class Show extends HttpServlet{
@Override
public void init(ServletConfig config) throws ServletException {
// TODO Auto-generated method stub
super.init(config);
}

protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
resp.setContentType(“text/html;charset=utf-8″);
PrintWriter out=resp.getWriter();
out.println(““);
String s=req.getParameter(“str”);
byte[] bb=s.getBytes(“utf-8″);
s=new String(bb);
int n=s.length();
out.print(s+” 的长度:”+n+”
“);
out.println(““);
}

protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

doPost(req, resp);
resp.setContentType(“text/html;charset=utf-8″);
PrintWriter out=resp.getWriter();
out.println(““);
String s=req.getParameter(“str”);
byte [] bb=s.getBytes(“utf-8″);
s=new String(bb);
if(s.startsWith(“Hello”))
out.println(s+” 的前缀是:Hello”);
else
out.println(s+” 的前缀不是:Helo”);
out.println(““);

}

}

[/cc]

20151124141639

20151124141823

 

站长QQ:739696033 | 微信:bing-0719:Bcoder资源网 » jsp HttpServlet的doGet和doPost方法


本站VPN

扫描二维码关注微信公众号:“bcoder-cn 声明:本站内容部分来自互联网,仅供交流学习之用,请勿作商业用途,版权归原作者所有。如果有侵犯到您的权益,请提供相关证明联系本站删除,谢谢合作!
赞 (0)
分享到:更多 ()

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址