配置servlet的web.xml文件导致tomcat无法启动

我们按正常步骤创建servlet,接着配置web.xml文件,然后我们启动服务器时发现提示如下错误:

提示Tomcat服务器遇到一个问题,那我们首先看一下java文件:

我们可以发现在16行处:@WebServlet("/login")

package servlet;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import dao.UserDao;
import entity.User;

/**
 * Servlet implementation class login
 */
@WebServlet("/login")
public class login extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
	  @Override
	    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
	      System.out.println("post");  
		  resp.setContentType("text/html;charset=utf-8");
	        req.setCharacterEncoding("utf-8");

	        String username = req.getParameter("username");
	        String password = req.getParameter("password");
	        UserDao userDao = new UserDao();
	        //根据密码查询用户
	        User user  = userDao.login(username, password);
	        //判断user是否为空
	        if (user != null) {
	            //将用户的对象放到session中
	            req.getSession().setAttribute("user", user);
	            //转发到result.jsp页面
	            req.getRequestDispatcher("message.jsp").forward(req, resp);
	            /**
	             response.sendRedirect(url)跳转到指定的URL地址,产生一个新的request,所以要传递参数只有在url后加参
	             数,如:
	             url?id=1.
	             request.getRequestDispatcher(url).forward(request,response)是直接将请求转发到指定URL,所以该请求
	             能够直接获得上一个请求的数据,也就是说采用请求转发,request对象始终存在,不会重新创建。而
	             sendRedirect()会新建request对象,所以上一个request中的数据会丢失。
	             */
	        }else {
	            //登录失败
	            req.setAttribute("info","用户名或密码错误!");
	            req.getRequestDispatcher("message.jsp").forward(req, resp);
	        }
	    }

	    @Override
	    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
	    	System.out.println("post");
	    	doPost(req, resp);
	    }

}

接下来看一下xml文件:

发现我们已经配置好服务器了,那么问题究竟出在哪里呢?其实@WebServlet("/login")是3.0版本自带的,方便我们开发的,写了他就可以不用配置web.xml文件,同样如果你习惯配置web.xml,那也可以删除@WebServlet("/login"),所以二者留一个即可。
 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值