概述
JAVAEE笔记:第十七次课——JSP
- JSP的概念及作用
- JSP概念
- JSP相比于其他的技术的优势
- Jsp执行过程
- JSP的组成元素
- 重点内容
- 指令元素
- include指令
- 内建对象
- request对象
- 动作元素
- javaBean
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的组成元素
元素 | 功能 |
---|---|
注释元素 | <!– 注释内容 --> |
模板元素 | 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 内建对象
最后
以上就是高贵芝麻为你收集整理的JAVAEE笔记:第十六次课——JSPJSP的概念及作用Jsp执行过程JSP的组成元素的全部内容,希望文章能够帮你解决JAVAEE笔记:第十六次课——JSPJSP的概念及作用Jsp执行过程JSP的组成元素所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复