JAVAEE笔记:第十六次课——JSP

JSP的概念及作用

JSP概念

JSP (Java Server Page)是 Sun Microsystems 公司的一种规范,它将 Java 与 HTML 相结合。
JSP本质是就是Servlet; JSP 是使用Java 开发基于 Web 的应用程序不可或缺的组成部分。

JSP相比于其他的技术的优势

JSP技术使用Java编程语言编写类XML的tags和scriptlets,来封装产生动态网页的处理逻辑。网页还能通过tags和scriptlets访问存在于服务端的资源的应用逻辑。JSP将网页逻辑与网页设计的显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易。 JSP(JavaServer Pages)是一种动态页面技术,它的主要目的是将表示逻辑从Servlet中分离出来。

  • 支持可视化编辑工具编辑 ,编写网页更加直观,更易做出美观的页面;

  • servlet更适合做后端,前端由jsp做减少了程序员不必要的时间的浪费 ;

     <%@ page language="java" contentType="text/html; charset=utf-8"
             pageEncoding="utf-8"%>
          <% /**
         		<%-- comment --%>      //JSP编译器会忽略
         		<% /** 多行注释 **/ %>    //查看.java文件可以看到
         		<% //单行注释 %>    //查看.java文件可以看到                           **/ %> 
         <!DOCTYPE html>
         <html>
         <head>
         <meta charset="ISO-8859-1">
         <title>JSP完整的文件实例</title>
         </head>
         <body>
         <%
         for(int i=0;i<3;i++){
         %>
         	<input type="button" value="<%=i%>"><br>
         <%
         }
         %>
             </body>
             </html>
    

Jsp执行过程

客户端发出Request (请求);

JSP Container 将JSP 转译成Servlet 的源代码;

将产生的Servlet 的源代码经过编译后,并加载到内存执行;

进入Servlet的执行过程; response.getWiter.print();

注意:只有第一次访问会有JSP 转译成Servlet 的源代码的过程,后面就不会再次编译了。
jsp流程图

JSP的组成元素

元素功能
注释元素<!– 注释内容 -->
模板元素div、p等行块元素
指令元素page、include、taglib
脚本元素 (九大内建对象)代码段、表达式全、局声明
动作元素forward、param、plugin等

重点内容

指令元素

page属性
info页面信息
language定义使用的脚本语言,目前只能是java
pageEncoding定义JSP字符编码
contentType定义JSP字符编码和页面MIME
contentType=“text/html; charset=gb2312”告诉浏览器采用什么方式以及编码显示这个jsp
extends继承
import
session指定在一个http会话该页面是否参与, 默认值为true
buffer到客户端输出流的缓冲大小 buffer=“8kb”或者 buffer=“none”
autoFlush默认true,如果false,缓冲满时运行就异常
isThreadSafe是否多线程处理请求
errorPage指定该页面出现异常时调用的页面
isErrorPage该页是否是错误页,则可以使用exception

include指令

将其他文件(.jsp .html等)引入到本文件中。
打包在包含页面中统一编译成java文件
被包含页面不单独生成对应的java文件

格式: <%@ include file=“jsp或者html页面" %>
include 指令只有一个属性file表示此file 的路径。
例如: <%@include file=“/other.htm”%>

注意: 不能将Servlet引入到jsp中。 即file属性不能指向一个Servlet。

内建对象

jsp内建对象是: 在jsp中预定义好的对象;开发者可以在jsp直接使用,无需定义和创建。

request对象

在这里插入图片描述

<%@ page language="java" import="java.util.*" contentType="text/html; charset=utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
  
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
 <head>
  <base href="<%=basePath%>" rel="external nofollow" >
   
  <title>My JSP 'index.jsp' starting page</title>
    <meta http-equiv="pragma" content="no-cache">
    <meta http-equiv="cache-control" content="no-cache">
    <meta http-equiv="expires" content="0">  
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="This is my page">
    <!--
    <link rel="stylesheet" type="text/css" href="styles.css" rel="external nofollow" >
    -->
 </head>
  
 <body>
  <h1>request内置对象</h1>
  <%
    request.setCharacterEncoding("utf-8"); //解决中文乱码问题,无法解决URL传递中文出现的乱码问题。
    request.setAttribute("password", "123456");
   
  %>
    用户名:<%=request.getParameter("username") %><br> 
    爱好 :<%
      if(request.getParameterValues("favorite")!=null)
      {
          String[] favorites = request.getParameterValues("favorite");
          for(int i=0;i<favorites.length;i++)
          {
           out.println(favorites[i]+"  ");
          }
        }
    %> <br>
     密码:<%=request.getAttribute("password") %><br>
     请求体的MIME类型:<%=request.getContentType() %><br>
     协议类型及版本号: <%=request.getProtocol() %><br>
     服务器主机名 :<%=request.getServerName() %><br>
     服务器端口号:<%=request.getServerPort() %><BR>
     请求文件的长度 :<%=request.getContentLength() %><BR>
     请求客户端的IP地址:<%=request.getRemoteAddr() %><BR>
     请求的真实路径:<%=request.getRealPath("request.jsp") %><br>
     请求的上下文路径:<%=request.getContextPath() %><BR>             
 </body>
</html>

在这里插入图片描述

动作元素

在这里插入图片描述
<jsp:include page=“ee.jsp”></jsp:include>
(用于包含一些公共的页面 比如 网站的头部 和顶部)
<jsp:forward page=“ee.jsp”>
<jsp:param value=“value1” name=“gok”/>
</jsp:forward>

javaBean

jsp:useBean:useBean动作用于查找作用域中数据(JavaBean)如果没找到则创建。

useBean语法如下:
<jsp:useBean id=”varName” class=”BeanClass” scope=”page/request/session/application”/>
其中:
id:专用于创建Bean的引用名。
class:指定Bean的类,实例化对象的类型,new class 。
type:声明对象的类型,class的父类型或父接口类型;
scope:指定存放Bean的作用域,默认为page。

jsp:setProperty

setProperty动作用于设置useBean中指定的Bean的属性的值。setProperty动作指定名称、属性、值和参数,用于赋给Bean的属性。
setProperty语法:<jsp:setProperty name=”BeanAlias” property=”PropertyName” value=”Value” param=”Parameter”/>
其中参数:
name: 指定useBean中使用的Bean的ID。
property:指定要为之设置的Bean的属性名称。
value: 指定要为属性设置的显式值。
param: 指定用于输入并给属性赋值的HTML标签。
注意:param属性不能与value属性一起使用。

jsp:getProperty

setProperty动作用于获取Bean中指定的属性中的值。系统先将收到的值转换为字符串,然后再将其作为输出显示。
getProperty语法:<jsp:getProperty name=”BeanAlias” property=”PropertyName”/>
其中参数:
name:指定useBean中指定的Bean的ID。
property:指定要从中检索值的属性名称。

<jsp:useBean id="userBean" class="eclipseone.userBean"></jsp:useBean>
<jsp:setProperty property="name" name="userBean" value="hello"></jsp:setProperty>
<jsp:getProperty property="name" name="userBean"></jsp:getProperty>

引用
国科学院
百度百科
https://www.jb51.net/article/124663.htm 内建对象

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值