JSP


前言

提示:这里可以添加本文要记录的大概内容:
例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。


提示:以下是本篇文章正文内容,下面案例可供参考

一、JSP基础语法

1.JSP简介

JSP全称Java Server Pages,是一种动态网页开发技术,JSP是一种Java servlet,主要用于实现Java web应用程序的用户界面部分,通过结合HTML代码、XHTML代码、XML元素以及嵌入JSP操作和命令来编写JSP,JSP通过网页表单获取用户输入数据、访问数据库及其他数据源,然后动态地创建网页。

2.JSP页面元素

a.JSP页面元素构成

在这里插入图片描述

b.page指令

page主要功能是定义一个页面中的全部属性,里面会包含很多的选项。

  1. language属性
    指定JSP页面使用的脚本语言,默认值Java

  2. import属性
    通过该属性来引用脚本语言使用到类文件

  3. contentType属性
    用来指定JSP页面所采用的编码方式,默认值text/html,ISO-8859-1.

例: <%@ page language=“java” import=“java.util.*” pageEncoding=“ISO-8859-1”%>

c.JSP注释

  1. HTLM注释: <!- - 注释内容 -->
  2. JSP注释: <%-- 注释内容 --%>
  3. JSP脚本注释:
    a.单行注释: // 注释内容
    b.多行注释: /* 注释内容 */

d.JSP脚本

在JSP页面中执行Java代码
<%…%>:Java语句

e.JSP声明

在JSP页面中定义变量或方法

<%!..%>:Java定义类成员

f.JSP表达式

在JSP页面中执行的表达式
<%=…%>:Java表达式

g.JSP页面生命周期

a. 解析JSP文件;
b. 将JSP文件转化为servlet;
c.编译servlet;
先判断是不是第一次请求,如果是的话,也就是说JSP还没有被编译过,JSP引擎就把相应的JSP文件编译成servlet,生成字节码文件,并调用jspInit();如果不是第一次请求,说明已经有了字节码文件,那么就开始解析执行,调用jspServive()。
jspService()方法被调用来处理客户端的请求,对于每一个请求,JSP引擎将创建一个新的线程来处理请求。如果有多个客户端同时请求JSP文件,则JSP引擎将会创建多个线程,每个客户端对应一个线程。

h.打印九九乘法表

 <body>
 //表达式方式
   		<%!
   			
   			String printMultiTable()
   			{
   				String s = "";
   				for(int i=1;i<=9;i++)
   				{
					for(int j=1;j<=i;j++)
					{
						
						s+=i+"*"+j+"="+(i*j)+"&nbsp; &nbsp; &nbsp;&nbsp; ";
					} 
					s+="<br>"; 				
   				}
   				return s;
   			}
   		
   		 <hr>
   		 <%=printMultiTable() %>
   		
   	//脚本方式
   			void printMultiTable2(JspWriter out)
   			{
   				for(int i=1;i<=9;i++)
   				{
   					for(int j=1;j<=i;j++)
   					{
   						out.println(i+"*"+j+"="+(i*j)+"&nbsp; &nbsp; &nbsp;&nbsp; ");
   					}
   					out.println("<br>");
   				}
   			}
   		 %>
   	<hr>
   		 <% printMultiTable2(out); %>
  </body>


二、JSP内置对象

1.out对象

JSP通过out对象向客户端浏览器输出信息,并且管理应用服务器上的输出缓冲区。在使用该对象输出数据时,可以操作数据缓冲区,并及时清除缓冲区中残余的数据,为其他的输出让出缓冲空间。数据输出后要及时关闭输出流。

1. void println() 向客户端打印字符串
2. void crear():清除缓冲区中的内容,flush后调用抛出异常

3. void crearBuffer()清除当前缓冲区中的内容

4. flush():刷新流

5. boolean isAutoFlush():检测当前缓冲区已满时是自动清空,还是抛出异常

6. int getBufferSiae():获取缓冲区的大小
7. int getRemaining():返回缓冲区还有多少可用
8. void close ()关闭输出流

2. get与post提交方式区别

1.get:以明文的方式通过URL提交数据,数据在URL中可以看到。提交的数据最多不超过2KB。
安全性较低但效率比post方式高。适合提交数据量不大,安全性不高的数据。比如:搜索、查询等功能。

2.Post:将用户提交的信息封装在HTML HEADER内。适合提交数据量大,安全性高的用户信息。

比如:注册、修改、上传等功能。

3.request对象

1. object getAttribute(String name) 返回指定属性的属性值 
2.   Enumeration getAttributeNames() 返回所有可用属性名的枚举 
3.  String getCharacterEncoding() 返回字符编码方式 
4. int getContentLength() 返回请求体的长度(以字节数) 
5. String getContentType() 得到请求体的MIME类型 
6. ServletInputStream getInputStream() 得到请求体中一行的二进制流 
7. String getParameter(String name) 返回name指定参数的参数值 
8.  Enumeration getParameterNames() 返回可用参数名的枚举 
9. String[] getParameterValues(String name) 返回包含参数name的所有值的数组 
10.  String getProtocol() 返回请求用的协议类型及版本号 
11. String getScheme() 返回请求用的计划名,如:http.https及ftp等 
12. String getServerName() 返回接受请求的服务器主机名 
13.  int getServerPort() 返回服务器接受此请求所用的端口号 
14.  BufferedReader getReader() 返回解码过了的请求体 
15.  String getRemoteAddr() 返回发送此请求的客户端IP地址 
16.  String getRemoteHost() 返回发送此请求的客户端主机名 
17. void setAttribute(String key,Object obj) 设置属性的属性值 
18.  String getRealPath(String path) 返回一虚拟路径的真实路径 

4.response对象

Response就是有关客户端请求之响应,可以用它来设定一些 标题、响应状态信息

 1. String setCharacterEncoding();                       /*返回设置响应字符编码格式
 2.  void setContentType();                                   /*设置相应MIME类型
 3. PrintWriter getWriter()                                   /*返回可以向客户端输出的一个对象(类似out)
         PrintWrite outer = response.getWrite();  /*获得输出流对象(PrintWrite需要导包:java.io.*)
         
   4.  sendRedirect(java.lang.String location)           /*重定向客户端的请求
        

5.session对象

session表示客户端与服务器的一次会话

1. long getCreationTime():返回session创建时间
2. public String getId():返回session创建时JSP引擎为它设的唯一的ID号
3. public Object setAttribute(String name,Object value):使用指定名称将对象绑定到此对话
4. public Object setAttribute(String name):返回与此会话指定名称绑在一起的对象,如果没有对象绑定在该名称下,则返回null
5. String[] getValueNames():返回一个包含session中所有可用属性的数组
6. int getMaxInactiveInterval():返回两次请求将各多长时间此session被取消

6.session生命周期

【来自博客
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

7.application对象

当Web服务器启动时,Web服务器会自动创建一个application对象。application对象一旦创建,它将一直存在,直到Web服务器关闭。
一个Web服务器通常有多个Web服务目录 (网站),当Web服务器启动时,它自动为每个Web服务目录都创建一个application对象,这些application对象各自独立,而且和Web服务目录一一对应。
访问同一个网站的客户都共享一个application对象,因此,application对象可以实现多客户间的数据共享。
访问不同网站的客户,对应的application对象不同。

String getAttribute(String name)	根据属性名称获取属性值。
Enumeration getAttributeNames()	获取所有的属性名称。
void setAttribute(String name, Object object)	设置属性,指定属性名称和属性值。
void removeAttribute(String name)	根据属性名称删除对应的属性。
 ServletContext getContext(String uripath)	获取指定URL的ServletContext对象。
String getContextPath()	获取当前Web应用程序的根目录。
String getInitParameter(String name)	根据初始化参数名称,获取初始化参数值。
int getMajorVersion()	获取Servlet API的主版本号。
int getMinorVersion()	获取Servlet API的次版本号。
String getMimeType(String file)	获取指定文件的MIME 类型。
String getServletInfo()	获取当前Web服务器的版本信息。
String getServletContextName()	获取当前Web应用程序的名称。
void log(String message)	将信息写入日志文件中。

8.page对象

page对象就是指向当前JSP本身,有点像类中的this指针,它是java.lang.Object类的实例。
在这里插入图片描述

9.pageContext对象和config对象

.pageContext即页面上下文对象,表示当前页面运行环境,用以获取当前JSP页面的相关信息,pageContext对象作用范围为当前JSP页面,pageContext对象类型为javax.servlet.jsp.PageContext,pageContext对象可以访问当前JSP页面所有的内置对象

【图片来自博客
在这里插入图片描述
config对象
config对象用来存放Servlet初始的数据结构。

1. String getInitParameter( String name ) ;
  返回名称为name的促使参数的值。

2. Enumeration getInitParameters() ;
  返回这个JSP所有的促使参数的名称集合。

3. ServletContext getContext() ;
  返回执行者的servlet上下文。

4. String getServletName() ;
  返回servlet的名称。

10.exception对象

该对象的作用是显示异常信息。exception 对象的作用是显示异常信息,只有在包含 isErrorPage=”true” 的页面中才可以被使用,在一般的JSP页面中使用该对象将无法编译JSP文件。

1. getMessage()	返回异常对象的异常信息字符串
2. getLocalizedmessage()	返回本地化的异常错误
3. toString()	将异常信息的简单描述
4. fillInstackTrace	重写异常错误的栈执行轨迹
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值