JSP入门

jsp 功能与特性

JSP(Java Server Page)是JavaEE规范中的Web组件,用来编写动态页面
JSP运行在服务器端,本质是Servlet;
JSP文件以.jsp为后缀,在Eclipse的工程目录中存在WebContent目录下
JSP文件可以直接在浏览器中访问
JSP文件中的内容就是 HTML+Java代码,静态部分使用HTML和文本即可,动态部分使用Java代码;
jsp包括六大组成部分
jsp指令 (page导包,编码格式) 语法: <%@page,charset=“utf-8”%>

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>

jsp脚本 (java代码) 语法:<%java代码%>

<%System.out.println("在JSP中可以编写Java代码");%>
你的IP地址是:<%=request.getRemoteAddr() %>

jsp表达式(输出语句) 语法:<%= %>

<%=request.getRemoteAddr() %>>

jsp声明(定义方法) 语法**<%! %>**

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

jsp注释 语法<%-- --%>
h5+css+js

JSP的执行过程是:翻译-编译-实例化-提供服务

JSP的内置

JSP的内置对象是指在JSP页面系统中已经默认内置的Java对象,这些对象不需要开发人员显式声明即可使用。在JSP页面中,可以通过存取JSP内置对象实现与JSP页面和Servlet环境的相互访问。每个内部对象均有对应所属的ServletAPI类型。

JSP内置对象包括request对象、response对象、session对象、out对象、application对象、page对象、exception对象、pageContext对象、config对象。这些对象在客户端和服务器端交互的过程中分别完成不同的功能。
1.Request对象(向服务端发送请求)
Request对象是javax.servlet.http.HttpServletRequest类的实例。代表请求对象,主要用于接受客户端通过HTTP协议连接传输到服务器端的数据。比如表单中的数据、网页地址后带的参数等。

request.getParameter("username");//获取name=username的值(单个值)
request.getParameterValues("usernaem");//获取name=username的值(多个值,用数组或集合接收)
request.setCharacterEncoding("utf-8");//设置字符编码

2.Response对象(向客户端发送数据)
Response对象是javax.servlet.http.HttpServletResponse类的实例。代表响应对象,主要用于向客户端发送数据。
3.Out对象(客户端浏览器输出数据)
Out对象是javax.servlet.jsp.JspWriter类的实例。主要用于向客户端浏览器输出数据。
4.session对象(保留的数据)
Session 对象是javax.servlet.http.HttpSession类的实例。主要用来保持在服务器与一个客户端之间需要保留的数据,比如在会话期间保持用户的登录信息等,会话状态维持是Web应用开发者必须面对的问题。当客户端关闭网站的所有网页或关闭浏览器时,session对象中保存的数据会自动清除。由于Htp协议是一个无状态协议,不保留会话间的数据,因此通过session对象扩展了htp的功能。比如用户登录一个网站之后,登录信息会暂时保存在session对象中,打开不同的页面时,登录信息是可以共享的,一旦用户关闭浏览器或退出登录,就会清除session对象中保存的登录信息。
5.Application对象(共享的内置对象)
Application对象是javax.servlet.ServletContext类的实例。主要用于保存用户信息,代码片段的运行环境;它是一个共享的内置对象,即一个容器中的多个用户共享一个application对象,故其保存的信息被所有用户所共享。
6.PageContext对象(管理网页属性)
PageContext对象是javax.servlet.jsp.PageContext类的实例。用来管理网页属性,为JSP页面包装页面的上下文,管理对属于JSP中特殊可见部分中已命名对象的访问,它的创建和初始化都是由JSP容器来完成的。
7.Config对象(Servlet的配置)
Config对象是javax.servlet.ServletConfig类的实例。是代码片段配置对象,表示Servlet的配置。
8.Page(相当于this)对象
Page对象是javax.servlet.jsp.HttpJspPage类的实例。用来处理JSP网页,它指的是JSP页面对象本身,或者说代表编译后的servlet对象,只有在JSP页面范围之内才是合法的。
9.Exception对象
Exception对象是java.lang.Throwable类的实例。处理JSP文件执行时发生的错误和异常只有在JSP页面的page指令中指定isErrorPage=“true”后,才可以在本页面使用exception对象。

Servlet和JSP之间的跳转

  1. 有两种方式,分别是响应重定向和请求转发
  2. 响应重定向相当于客户端重新发出请求,之前的请求不再保存;请求转发是把当前请求转发到下一个资源;比较常用的是请求转发
  3. 请求参数是用户提交请求时,自动封装到请求对象中的一些输入信息,都是String类型;
  4. 请求属性可以是任意类型的对象,可以用setAttribute方法将对象作为属性存储到请求对象中;

重定向与转发的区别

request.getRequestDispatcher("index2.jsp").forward(request, response);//转发
response.sendRedirect("index2.jsp");//重定向
区别 转发forward 重定向sendRedirect()
地址栏 不会发生变化 会发生变化
哪里跳转 服务端进行跳转 浏览器端进行跳转
请求域中的数据 不会丢失 会丢失

你可能感兴趣的:(笔记,java,jsp)