Eclipse中运行Servlet出现HTTP Status *** 的若干错误解决

这两天一直在调Eclipse中运行Servlet的简单程序可是会出现若干种错误,网上查了好多,大家东拉西扯,可是多种解决办法没有一种适合我,经过一整天努力,终于解决了,现撰文分享,希望广大骂农朋友受益。

首先想说我用的是Eclipse JAVA EE版本的平台,至于MyEclipse的东东可能不适用。JDK版本是1.7的,tomcat版本是6.0的(这里想强调下本身应该是Eclipse3.x、JDK1.6、tomcat6.0搭配或Eclipse4.x、JDK1.7、tomcat7.0搭配,但我当时稀里糊涂安装好了,之后用tomcat7.0代替6.0版本,运行Servlet会出现HTTP Status 500的错误,估计是Eclipse中插件与tomcat 冲突的问题,因为关于WTP的插件是下自于http://blog.csdn.net/tiansong04该博客的,其都是基于tomcat6.0版本。所以在这里提醒广大和我一样的菜鸟盆友,版本搭配省去你找错误一半的时间,不要步我的后尘)。

先建Dynamic Web Project,其中建立3个文件,A.jsp:

<h1>Hello World!</h1>
	<%
		String person="?";
	    String user=request.getParameter("user");
		if(user!=null) person=user;

	%>
	Welcome to WTP,<%= person%>
B.jsp:
<% 
		String error_message="";
		Object error=request.getAttribute("error");
		if(error!=null) error_message=error.toString();
	%>
	<form action="HelloServlet">
		<table cellspacing="4">
			<tr>
				<td>Enter your user name:</td>
				<td><input name="user" type="text" size="20"></td>
				<td style="color: red"><%= error_message %></td>
			</tr>
			<tr>
				<td></td>
				<td><input type="submit" value="Login"></td>
				<td></td>
			</tr>
		</table>
	</form>


HelloServlet.java(Servlet文件)

	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		String url="/A.jsp";
		String user=request.getParameter("user");
		if(user==null||user.length()==0)
		{
			url="/B.jsp";
			request.setAttribute("error", "User name must not be empty.");
		}
		
		ServletContext context=getServletContext();
		RequestDispatcher dispatcher=context.getRequestDispatcher(url);//调用RequestDispatcher类的forward方法转移到该URL上
		dispatcher.forward(request, response);
	}


具体实现其实就是页面的传值的判断。右击HelloServlet.java文件,使用debug on server

首先出现的是HTTP status 404~: 

原因有可能1:你的HelloServlet文件位置有问题,可以调整。2:你的tomcat设置问题重新从Eclipse中的window->Preference->server 使用remove操作,然后重建server。3:是我看到的一个方法而且暂时解决了问题:摘自http://blog.csdn.net/alexhan_bing/article/details/2457891

如果你是按上述第3种取消注释的方法执行,你可能会出现如下错误报错“Server Tomcat v6.0 Server at localhost failed to start.

于是你需要做如下事情:

1. 修改Tomcat6.0/conf/context.xml文件,新加两个属性.
<Context  reloadable="true" privileged="true"

    <!-- Default set of monitored resources -->
    <WatchedResource>WEB-INF/web.xml</WatchedResource>
</Context>
2. 重启Eclipse,此步非常重要,一定要做
做完后如果运行正常,那么恭喜你,如果还出现HTTP Status404错误,请你看看你创建的Dynamic web project里build/classes下是否生成了与Servlet同名的.class文件,如果没有,那么你需要 检查下菜单项中的project 是否设置了 build Automatically,设置后重新编译就会生成.class.此时问题也就解决了。
结果图:

 

最后,希望此贴对大家有帮助,如果有错误或遗漏还希望各位补充指正,为前来看贴着提供方便,少走弯路

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值