404错误,请求的资源[/chapter05/LastAccessServlet]不可用
问题描述:
报错内容:
HTTP Status 404 – Not Found
Type Status Report
Message 请求的资源[/chapter05/LastAccessServlet]不可用
Description The origin server did not find a current representation for the target resource or is not willing to disclose that one exists.
Apache Tomcat/8.5.72
LastAccessServlet.java内容:
package cn.itcast.servlet;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Servlet implementation class LastAccessServlet
*/
@WebServlet("/LastAccessServlet")
public class LastAccessServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public LastAccessServlet() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
response.setContentType("text/html;charset=UTF-8");
String lastAccessTime = null;
Cookie[] cookies= request.getCookies();
for(int i=0;cookies!=null&&i<cookies.length;i++) {
if("lastAccess".equals(cookies[i].getName())) {
lastAccessTime = cookies[i].getValue();
break;
}
}
if(lastAccessTime ==null) {
response.getWriter().println("您是首次访问本站!!!");
}else {
response.getWriter().println("您上次访问本站的时间是:"+lastAccessTime);
}
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd-hh:mm:ss");
String currentTime = sdf.format(new Date());
Cookie cookie = new Cookie("lastAccess",currentTime);
cookie.setMaxAge(60*60);
response.addCookie(cookie);
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
}
}
web.xml内容:
```xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
<display-name>chapter05</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
</web-app>
```
答
URLPattern是用来匹配url的,应该是@WebServlet(name = "name", urlPatterns = "/chapter05/LastAccessServlet",是springboot项目吗,如果是,需要扫描servlet,入口类上要添加@ServletComponentScan
URLPattern是用来匹配url的,应该是@WebServlet(name = "name", urlPatterns = "/chapter05/LastAccessServlet",是springboot项目吗,如果是,需要扫描servlet,入口类上要添加@ServletComponentScan