1.主要的doGet內容
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setCharacterEncoding("GBK");
PrintWriter out = response.getWriter();
out.append("Served at: ").append(request.getContextPath());
response.setContentType("text/html");
out.print("<html><body><img src='https://img.uj5u.com/2020/09/25/133264250141571.jpg' width = 200 height = 160 /><p>內馬爾</p></body></html>");
out.print("<br />");
ServletConfig sc = this.getServletConfig();
String param = sc.getInitParameter("program");
out.print("program: "+param);
}在web.xml檔案中配置一條url-pattern
<servlet>
<servlet-name>SimpleServlet</servlet-name>
<servlet-class>cn.njpji.servlet.SimpleServlet</servlet-class>
<init-param>
<param-name>program</param-name>
<param-value>JavaWeb</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>SimpleServlet</servlet-name>
<url-pattern>/ShowImg</url-pattern>
</servlet-mapping>
3.在eclipse自帶瀏覽器中通過/ShowImg瀏覽:

chorme中瀏覽:

4.修改url-pattern,使用默認路由/
<servlet-mapping>
<servlet-name>SimpleServlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
5.重啟Tomcat后再次瀏覽,結尾跟任意url測驗

解決方法
在web.xml中添加如下
<servlet>
<servlet-name>default</servlet-name>
<servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.jpg</url-pattern>
<url-pattern>*.gif</url-pattern>
<url-pattern>*.css</url-pattern>
</servlet-mapping>
重啟Tomcat后再次瀏覽,結尾跟任意url測驗

原因:配了“/”之后,是攔截所有url的,在其中圖片也是一個url請求,攔截的時候,也把.jpg攔截了。
org.apache.catalina.servlets.DefaultServlet,這個是Tomcat內置的servlet,在自己配置了/之后,就會覆寫,所以也要把后綴的通配符給補上。
感謝CHD朋友的講解。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/122425.html
標籤:Java EE
