JSP本质是Servlet, Servlet 可以理解为 Serve + Applet的结合。JSP可以在标准的html页面中插入java代码,从而能更好的控制HTML,通过在本地部署了服务器之后,将JSP项目添加到服务器然后运行即可在网页中浏览自己建立的jsp页面。
JSP的九大内置对象:Application,Config,Exception,Out,PageContent,Page,Request,Respsonse,Session常用的有Request和response的一个页面重定向方法,request有几个常用的方法:
request.setAttribute(String key, Object obj) :通过键值对来保存数据,可以通过 request.getAttribute(String name)来获取保存的数据。
request.getParameter(String name):根据标签的name属性取得标签value的值,一种值传递方式
request.setCharacterEncoding("字符集"):设置字符集
request.getRequestDispatcher("index.jsp").forward(request, response):表示请求转发,进行页面跳转,跳转到某个jsp页面
response的一个常用的方法:
response.sendRedirect("main.jsp"):表示页面的重定向,但是不能传值,上个页面的保存的数据在经过response的页面重定向后无法取到数据,所以它只是起一个页面跳转的功能
response.sendRedirect("main.jsp") 和request.getRequestDispatcher("index.jsp").forward(request, response)是有区别的,response的页面重定向不能传值,而request的
请求转发是可以的。另外一个区别是在URL地址上的区别,response的页面重定向后,URL显示的是跳转后的页面,而request的跳转显示的还是跳转前的URL。
JSP的四大作用域:
Application Session Page request
Application:表示的是整个浏览器的范围只要服务器没有关闭,它就一直存在比如网站的统计。Session表示建立一次会话,在关闭浏览器之前会话一直存在,Page表示当
前页面,跳出当前页面之后就失效。request表示一次请求,在请求的范围内有效。
JSP的七个动作指令:
jsp:forward:页面跳转,其实就是request.getRequestDispatcher("index.jsp").forward(request, response)演化而来。
jsp:param:用于传递参数,前提是必须与其他支持它的标签一起使用
jsp:include:用于动态在当前的JSP中嵌入另一个JSP页面(被包含的JSP页面是通过方法来实现动态包含的,并且被包含的内容只有<body>,相对静态包含不会出现重复的声明)
jsp:plugin:用于下载JavaBean或Applet到客户端执行
jsp:userBean:创建一个JavaBean实例,其实就是类似<% %>的java代码块中创建一个对象实例
jsp:setProperty:设置JavaBean实例的属性值
jsp:getProperty:获取JavaBean实例的属性值
JSP的三个编译指令:
Page指令:对当前页面进行的指令
include指令:一般用来引入另外一个JSP页面,属于静态包含
taglib指令:定义自定义标签
使用的指令格式 <%@ >