关于localhost:8080/student/info与后面改成info.jsp区别?
来源:1-1 初识EL表达式
小太阳哦
2019-11-04 22:58:36
用http://localhost:8080/student/info.jps运行错误
public class Student { private String name; private String phone; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getPhone() { return phone; } public void setPhone(String phone) { this.phone = phone; } }
<%@ page language="java" contentType="text/html; charset=GBK" pageEncoding="GBK" import="com.imooc.Student"%> <!DOCTYPE html> <html> <head> <meta charset="GBK"> <title>Insert title here</title> </head> <body> <% Student stu=(Student)request.getAttribute("student"); String grade=(String)request.getAttribute("grade"); out.println("<h1>"+stu.getName()+"</h1>"); out.println("<h2>"+stu.getPhone()+"</h2>"); out.println("<h2>"+grade+"</h2>"); %> </body> </html>
import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** * Servlet implementation class Lestudent */ @WebServlet("/info") public class Lestudent extends HttpServlet { private static final long serialVersionUID = 1L; /** * @see HttpServlet#HttpServlet() */ public Lestudent() { super(); // TODO Auto-generated constructor stub } /** * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) */ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { Student stu=new Student(); stu.setName("李三"); stu.setPhone(null); String grade="A"; request.setAttribute("student", stu); request.setAttribute("grade", grade); request.getRequestDispatcher("/info.jsp").forward(request, response);; } }
用http://localhost:8080/student/info运行正确
1回答
好帮手慕柯南
2019-11-05
同学你好!
访问info.jsp是直接访问页面,此时request中并没有student和grade这两个属性,此时我们通过request获取到的stu和grade为空,这样在使用它们获取其它值时就报了空指针异常
访问info是先访问了Servlet然后再跳转至页面,而在Servlet中我们给request设置了student和grade这两个属性,所以在页面获取时是可以获取到的,因此不会报错
如果我的回答解决了你的疑惑,请采纳,祝学习愉快~
相似问题