为什么不会报错呢

为什么不会报错呢

<%@ page contentType="text/html;charset=utf-8"  isErrorPage="true"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
服务器内部错误,请联系管理员
<%
String msg=exception.getMessage();
out.println("<br>"+exception.getClass().getSimpleName()+":"+msg);
%>
</body>
</html>
<?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>servlet_advanced</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>

<!-- 对应的是PatternServlet -->
<servlet>
<servlet-name>patternServlet</servlet-name>
<servlet-class>com.imooc.servlet.pattern.PatternServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>patternServlet</servlet-name>
<url-pattern>/pattern/*</url-pattern>
</servlet-mapping>
<!--
设置应用程序全局参数 -->
<context-param>
<param-name>copyright</param-name>
<param-value>© 2021 imooc.com 京ICP备 12003892号-11</param-value>
</context-param>
<context-param>
<param-name>title</param-name>
<param-value>慕课网-程序员的梦工厂</param-value>
</context-param>
<!-- 指定错误页面 -->
<error-page>
<error-code>404</error-code>
<location>/error/404.html</location>
</error-page>
<error-page>
<error-code>500</error-code>
<location>/error/500.jsp</location>
</error-page>
</web-app>
package com.imooc.servlet.pattern;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

//servlet-JSP进阶,4-1章,Web.xml常用配置-通配符 pattern :模式
public class PatternServlet extends HttpServlet{
@Override
public void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//查询员工的基本信息
//获取当前访问的url,getRequestURL返回的是Stringbuffer;
String url=request.getRequestURL().toString();
System.out.println(url);
//截取的思路,获取最后一个/出现的位置;lastIndexOf获取最后一次出现的位置;
//substring 截取最后一次出现/位置的信息,坐标+1,也就是/后的信息;
String id=url.substring(url.lastIndexOf("/")+1);
response.setContentType("text/html;charset=utf-8");
PrintWriter out=response.getWriter();
out.println(id);
//设置逻辑判断
if(id.equals("1")) {
out.println("张三");
}else if(id.equals("2")) {
out.println("李四");
}else {
out.println("其他员工");
}
}

}

http://img1.sycdn.imooc.com//climg/60502c84092dd18c11860342.jpg

老师也是这样写的,为什么会报错?

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

2回答
好帮手慕小脸 2021-03-17 19:00:53

同学你好,当输入1-2之外的数字时,会进入else,而不输入内容是不符合if..else条件的,且是会出现异常信息的,这里同学可以试着访问:

http://localhost:8080/servlet_advanced/pattern/3

祝学习愉快~

好帮手慕小脸 2021-03-16 14:44:20

同学你好,上述代码的完成是符合5-1小节课程的代码演示,在5-2小节中,老师对PatternServlet类做出了如下修改,这里同学需要String类型的id转换为数字,在进行if判断:

http://img1.sycdn.imooc.com//climg/605053a40911bb0706590308.jpg

http://img1.sycdn.imooc.com//climg/605053af09f25ca105330170.jpg

祝学习愉快~

  • 提问者 rock221 #1

    正常的不可以转换吧, 字符串里面的是内容, 无法强制转换成int吧?

    2021-03-16 15:03:55
  • 好帮手慕小脸 回复 提问者 rock221 #2

    同学你好,同学是说如下这里吗?

    http://img1.sycdn.imooc.com//climg/6050724c096c0c2103990028.jpg

    如果是,是可以转换的,无需强转,如下所示:

    http://img1.sycdn.imooc.com//climg/6050729e09dac15705460138.jpg

    祝学习愉快~

    2021-03-16 16:56:07
  • 提问者 rock221 回复 好帮手慕小脸 #3

    那报错的原因是因为==,比较的是地址的引用?不是内容?所以报错?  但是2个对象之间比较的是引用吧,这是是对数字进行判断啊, 为啥会报错呢

    2021-03-16 16:58:27
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师