JSP1页面元素

JSP页面元素:
1·Tomcat:默认端口8080
2·Tomcat软件的运行过程

在这里插入图片描述
3. JSP文件后缀名为 (*.jsp .html .htm .css .java .class .js .sql )。
4. JSP的本质是 Java servlet, 主要用于实现Java web应用程序的用户界面部分 。
5. JSP文件名为 index.jsp时 访问可以省略文件名
6. JSP的本质就是servlet

7·JSP处理请求的过程(工作原理)
在这里插入图片描述

1.客户端发送请求到服务器(tomcat)
2.tomcat接收到请求,根据请求地址的后缀名目录结构,找到JSP文件
3.将JSP文件转化为JAVA源文件 .Java文件
4.将.java文件编译为.class文件
5.执行.class文件将输出的内容,转化为HTML返回到浏览器
6.浏览器接收将HTML展示

8.Jsp页面元素

  1. Html静态内容
  2. Html注释<!---- > jsp注释<%-- --% >
  3. Scriptlet <%java代码%>
  4. <%@ %> 指令: page include taglib
  5. <jsp:动作 > jsp动作:include
  6. <%! %> 声明 <%!开始 % >结束
    <%!
    int a = 3;
    int b = 5;
  public int show(){
	  return a+b;
  }

%>

  1. <%= %> 表达式

<%-- 表达式 相当于浏览器输出语句 <%=开始 % > 结束–%>
<%=a %>
<%=show() %>
<%

  //int  s= show();
  //out.print(s);

  //for(int i=1; i<=10; i++){
	  // System.out.println(i); //控制台打印
	  // out.print(i);  //浏览器打印
  //}

%>

9.指令:

       在jsp中,主要有三种类型的指令:page,include(加载页面,引入页面),taglib(引入标签库)
                            
       include指令:页面加载前被激活, 生成一个.java文件和一个.class文件      (<%@ include file="jsp.jsp" %>)
       
       include动作:请求期间被激活,   两个页面会分别生成各自的.java和.class文件    (<jsp:include page="jsp.jsp"></jsp:include>)

I. page:
1). 语法:<%@page attribute1=value1 attribute2=value2 attributeN=valueN %>
2). 属性:
a. 集成语言:language=“java”
b. 显示编码:pageEncoding=“UTF-8” //JSP页面的解码格式
c. 响应编码:contentType=“UTF-8” //服务器给客户端传输本文的编码格式
d. 内部导包:import=“java.util.* , java.sql.*” //也可通过多个<%@page import="" %>分别导包
e. 创建会话:session=“true|false” //默认true 饿汉式,立即创建Session;false 懒汉式,使用时创建Session。
f. 错误页面:isErrorPage=“true|false” //指定当前jsp为错误页面
g. 错误跳转:errorPage=" xxx.jsp " //如果有异常,跳转至错误页面
II. include:静态包含
1). 语法:<%include file=“被包含的jsp路径” %>
2). 作用:会将外部文件的源代码包含在jsp中。
3). 注意:可能会有重名的冲突问题,不建议使用。
III.taglib:
1). 语法:<%taglib uri=“外部标签库路径” prefix=“前缀” %>
2). 作用:引入JSP的标准标签库。
10.动作:
I. include:动态包含
1). 语法:<jsp:include page=“被包含的jsp路径” />
2). 作用:会将外部文件输出结果包含在jsp中。
3). 注意:可更好的包含外部文件,对代码没有侵入性,建议使用。

Include指令和include动作区别:
指令:页面加载前被激活,会生成自己页面的一个.java和.class文件,不建议使用
动作:页面请求期间被激活,会生成分别两个.java和.class文件,建议使用
11.在这里插入图片描述
12.request对象 请求

request对象是javax.servlet.http.HttpServletRequest类的实例。
每当用户请求一个jsp页面时候jsp引擎就会制造一个新request对象来代表这个新的请求
通过request来获取页面的所有请求信息
request对象定义一系列方法来获取http头信息,时间戳,http方法等

request方法:

  1. request.getContextPath()获得项目的目录名,即项目的根目录信息 <%=request.getContextPath() %>jsp.jsp
  2. String getParameter(String name) 根据页面表单组件的值获取页面请求 表单提交数据
  3. String[] getParameterValues(String name)获取页面请求中一个表单组件对应多值得用户请求数据(如多选)
  4. request.setCharacterEncoding(“utf-8”); 设置请求编码格式
  5. request.getRequestDispatcher(“url”).forward(request, response);
    forward转发跳转,跳转到指定的url,会直接使用原来的请求对象,不会产生 新的请求
    注意: 发起一次请求 跨越多个页面,地址栏不发生改变

13.response对象 响应

response对象是javax.servlet.http.HttpServletResponse类的实例
1 当服务器创建request对象时会同时创建用于响应这个客户端的response对象,所有服务端对客户端的响应信息都应该通过response输出。
2.response对象也定义了处理HTTP头模块的接口,通过这个对象,开发者们可以添加新的cookies,时间戳,http状态码等。

Response对象的方法:重定向
sendRedirect(String url) 发送一个响应给浏览器,指示其访问请求另一个url(redirect重定向,跳转到指定的url,发送一个新的请求,会新建一个请求对象)
注意:redirect跳转,地址栏发生改变,则地址栏显示的是跳转url的地址

区别: forward转发 延续上一次请求, 地址栏不发生改变
//request.getRequestDispatcher(“submit.jsp”).forward(request, response);

   Redirect重定向  重新请求  地址栏发生改变
   response.sendRedirect("submit.jsp");

14.out对象

out对象是javax.sevlet.jsp.JspWriter类的实例,用来在response对象中写入内容

out对象的常用方法:write(),print(),println()
注意: out是向浏览器输出数据 System.out.println()是向控制台输出数据

15.作用域通讯对象:

隐式对象的作用域包括page,request,session和application

作用域通讯对象包括 session,application和pageContext

page Context(page )对象
是javax.servlet.jsp.PageContext类的实例用来代表整个jsp页面
这个对象存储了request对象和response对象的引用,application对象,config对象,session对象out对象

作用域仅限于当前页面的对象,离开当前页面(无论是redirect还是forward),则pageContext中的所有属性值就会消失

Request对象

作用在同一个请求内,在页面跳转的时候如果通过forward跳转,则forward目标页面仍然可以拿到request中的属性值,如果通过redirect跳转则redirect的属性值会丢失

Session对象

是javax.servlet.http.HttpSession类的实例,和Java servlets中的session对象有一样的行为
session的作用域是在一个会话的生命周期内,会话失效,则session中的数据也随之丢失

application对象

直接包装了servlet的ServletContext类的对象是javax.servlet.ServletContext类的实例
作用域是最大的,只要服务器不停止,则application对象就一直存在,并且为所有对话共享

16.错误对象 exception对象

exception对象包装了从先前页面中抛出的异常信息,它通常被用来产生对出错条件的适当响应
通过使用exception对象自定义错误页面,从而可以替代服务器自带的500错误页面的信息《使用errorPage=“”来指定错误页面》
注意:需要在error.jsp中的page指令通过isErrorPage=“true”开启对exception对象的使用

17.servlet对象
18.config对象是javax.servlet.Se rvletConfig类的实例,直接包装了servlet的ServletConfig类的对象放置Servlet配置信息
19.page对象
这个对象就是页面实例的引用,它可以看做是真个jsp页面的代表,page对象就是this对象的同义词

                 账号:<input type="text" id="" name="userName" value="小白"/> <br/>
                 密码:<input type="password" id="" name="pass" value="123456"/> <br/>
           
                 性别:<input type="radio" name="sex" value="男" checked/>男
       <input type="radio" name="sex" value="女"/>女 <br/>  
       
                爱好:  <input type="checkbox" name="hobby" value="打游戏"/>打游戏
       <input type="checkbox" name="hobby" value="睡觉"/>睡觉
       <input type="checkbox" name="hobby" value="吃饭"/>吃饭
       <input type="checkbox" name="hobby" value="打豆豆" checked/>打豆豆  <br/>
       
       <input type="submit"/>
</form>  
submit.jsp
<%-- request.getParameter(String name); 请求页面表单数据 request.setCharacterEncoding("utf-8"); 设置请求编码格式 request.getContextPath(); 请求部署后的项目名称 request.getParameterValues("hobby"); 获得页面多值用户请求数据 得到数组 --%>

<%–
request.setCharacterEncoding(“utf-8”);

   String name = request.getParameter("userName");
   out.print(name);
   
   String pass = request.getParameter("pass");
   out.print(pass);
   
   String sex = request.getParameter("sex");
   out.print(sex);
   
   //多值
   String[] h= request.getParameterValues("hobby");
   for(int i=0;i<h.length; i++){
	   out.print(h[i]+" ");
   }
   
   
--%>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值