500报错问题
老师好,课程中的代码将
String ua = request.getHeader("User-Agents");的User-Agent修改为User-Agents后会报错500;为什么我这边修改后为什么不会报错,而是返回null
package com.cn.imooc.servlet; 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 java.io.IOException; @WebServlet("/uas") public class UserAgentServlet extends HttpServlet { @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=utf-8");;//通知浏览器采用utf-8字符集去显示文本 String url = request.getHeader("User-Agents");//获取请求头中的数据 response.getWriter().println("<h1>字符串为:<h1>"+url); String out=""; //indexOf(String str): 返回指定字符str在字符串中(方法调用者)第一次出现处的起始索引,如果此字符串中没有这样的字符,则返回 -1 if(url.toLowerCase().indexOf("windows nt")!=-1){ out="<h1>我是pc端<h1>"; }else if(url.toLowerCase().indexOf("iphone")!=-1 || url.toLowerCase().indexOf("android")!=-1){ out="<h1>我是手机端<h1>"; }/*else { out="<h1>没有找到的类型<h1>"; }*/ response.getWriter().println(out); } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { super.doPost(req, resp); } }
7
收起
正在回答 回答被采纳积分+1
1回答
好帮手慕小蓝
2022-12-07 11:16:44
同学你好,在同学的代码中,
response.getWriter().println("<h1>字符串为:<h1>" + url);
语句已经将响应进行了发送,后续代码中即使抛出异常,也不会对之前的响应产生影响。并且后续的
response.getWriter().println(out);
语句并没有得到正确的执行,同学可以将内容更换之后尝试一下。
如果想要复现课程中老师演示的效果,需要将
response.getWriter().println("<h1>字符串为:<h1>" + url);
放在if代码块的后面,这样可以在响应发送之前抛出异常,对响应产生影响。
祝学习愉快~
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星