猿问

使用myeslipse2015CI 创建servlet,浏览器访问servlet,页面是空白的?

这是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>");
	}

}

http://img.mukewang.com/5991075f0001733603820320.jpg



网上看到说是servlet 3.0的新特性,不使用xml注解,也是可以的,但是我的却是空白页面?这是为何?

Developer_Huang
浏览 2331回答 2
2回答

时间啊

你重写了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 方法就可以了。

慕的地8582982

DGQGQUNEHRZOTTTMWJSIISNCTWUCVSIORRDPZMAZCHBYHELEQRNBVOIASFFPFOEXEBLXQKCWMWVGPFRLWXAURGQQKWPEONQYXUEWSPIGJMCSBVJORBTXQQZZZBERPISKHADTDCMZKTMCXKUFUXQUFVTZVCJEEUUENBCGAHMSSSMTXWVVUKNYSHUXFTPNZJRSZMPIVZXTCCEVYRKUXYDQHHYLOXAKSYVJDWQUEFLGKEQBWMIIFOLQXDDDGKXAUFHQBBUEHJJDFLUGTHVRREXHYLISQWGPJZQVUHYYIBQRIJDFRRISVOLUBFZNDGGJYFZJMJWFZUUDATOUAGRKGNMJTLOXWGDMNNQAXDVIICITMRKQUNABOSSLEYCLAILEHQTRBUJXQQJHKJKRTZXLVECLJFZDJSVYELBOMCBEARHRMYEBOQPCCZTAOYIBSYAALSZWRYICIUXNNNDGMWLEATJZOVBEWZBKOOPSJJZEEAGTGATEQHKOQJNHOSBEOTYUDDTFICUBDOATGFPCVKGPQMLIBYLQWTWKPFLVYRVJXOOENQTEUXVLYWIRFLLWPYJTLXTXXHAAPHHWVRPTVJNMZCQCVYOEKCADTZEUYOYTGNDGAMVYRXXNWWDLHXIRCSCFOGOKUBEHURNAXIUDRHHHYXHDBNDGAKAGJQJGCYRLBRBILVBHLPGPNJGGXCSMJJDDWJGXNAJPZHGWTJTXGSYYOOHERBQSEYIZPTEFVAMVVTUTJKVPYBOBBKHLMFCKXWQGQPPSLFKXANOPSLQTXSOUQUUDTOIVTFYLLXNKNANACFLKGPCSSCMRYLRRHWICVGCUEXNDTMDSYLDQUXWTPWJIQWWCCSILSTQCSIHYRHHSOURRSLBPMEYZ
随时随地看视频慕课网APP

相关分类

Html5
Java
我要回答