这是jsp页面代码
<body>
<h1>第一个myeclipse servlet程序</h1>
<!--用get方式(表单没有指定method,或者正常的URL,请求都是get方式),请求一个servlet -->
<a href="servlet/HelloServlet">get方式请求HelloServlet </a>
<%--post请求,写一个表单,指定method=post --%>
<form action="servlet/HelloServlet" method="post">
<input type="submit" value="post请求servlet" />
</form>
</body>
以下是servlet代码
package servlet;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.Servlet;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Servlet implementation class HelloServlet
*/
@WebServlet("/servlet/HelloServlet")
public class HelloServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public HelloServlet() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see Servlet#init(ServletConfig)
*/
public void init(ServletConfig config) throws ServletException {
// TODO Auto-generated method stub
}
/**
* @see Servlet#destroy()
*/
public void destroy() {
// TODO Auto-generated method stub
}
/**
* @see HttpServlet#service(HttpServletRequest request, HttpServletResponse
* response)
*/
protected void service(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse
* response)
*/
protected void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
System.out.println("doGet处理get请求 ");// 这是后台显示的
PrintWriter pw = response.getWriter();
response.setContentType("text/html;charset=utf-8");
pw.println("<strong>helloServelt</strong>");
}
@Override
protected void doPost(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
System.out.println("dopost处理post请求 ");// 这是后台显示的
PrintWriter pw = response.getWriter();
response.setContentType("text/html;charset=utf-8");
pw.println("<strong>helloServelt</strong>");
}
}网上看到说是servlet 3.0的新特性,不使用xml注解,也是可以的,但是我的却是空白页面?这是为何?
2 回答
已采纳
时间啊
TA贡献17条经验 获得超21个赞
你重写了service()方法。
在 HttpServlet 中已存在 service()方法.缺省的服务功能是调用与 HTTP 请求的方法相应的 do 功能。
例如,如果 HTTP 请求方法为 GET,则缺省情况下就调用 doGet()。
service方法是接口中的方法,servlet容器把所有请求发送到该方法,该方法默认行为是转发http请求到doXXX方法中,如果你重载了该方法,默认操作被覆盖,不再进行转发操作!
service()是在javax.servlet.Servlet接口中定义的, 在 javax.servlet.GenericServlet中实现了这个接口, 而 doGet/doPost 则是在 javax.servlet.http.HttpServlet 中实现的, javax.servlet.http.HttpServlet 是javax.servlet.GenericServlet 的子类.
Servlet 应该为 Servlet 支持的 HTTP 方法覆盖 do 功能.因为HttpServlet.service() 方法会检查请求方法是否调用了适当的处理方法,不必要覆盖 service() 方法。只需覆盖相应的 do 方法就可以了。
添加回答
举报
0/150
提交
取消