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代码块的后面,这样可以在响应发送之前抛出异常,对响应产生影响。
祝学习愉快~
2023版Java工程师
- 参与学习 人
- 提交作业 8788 份
- 解答问题 9886 个
综合就业常年第一,编程排行常年霸榜,北上广深月薪过万! 不需要基础,无需脱产即可学习,只要你有梦想,想高薪! 全新升级:技术栈升级(包含VUE3.0,ES6,Git)+项目升级(前后端联调与功能升级)
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星