JSP简述

2024-08-30 12:52
文章标签 jsp 简述

本文主要是介绍JSP简述,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

JSP

JSP的本质是一个Servlet,JSP主要负责与用户进行交互,将最终的界面呈现给用户,HTML+JS+CSS+JAVA的混合文件

当服务器接收到一个后缀是JSP的请求时,将该请求交给JSP引擎去处理,每一个JSP页面第一次被访问时,JSP引擎会将他翻译成Servlet文件,由Web容器调用servlet完成响应。

从开发的角度看,JSP就是在HTML中嵌入Java程序

嵌入方式

1.JSP脚本:执行逻辑代码

 <%JAVA代码%>

其中的Java代码在控制台输出

2.JSP声明:定义Java方法

 <%!声明Java方法%>

3.JSP表达式:把Java对象直接输出到HTML页面

 <%=JAVA遍历%>

JSP内置对象

JSP提供的可以直接使用的对象 一共有九个

1.request 2.response 3.pageContext 4.session 5. application 6.config 7.out 8.page 9.exerption

1.request 表示一次请求,由httpservletRequest

2.response 表示一次响应,由httpservletResponse

3.pageContext 页面上下文,获取页面信息 由pageContext

4.session 表示一次会话 ,用来保存用户信息 HttpSession

5.application 表示当前的web应用,全局对象,保存所有用户信息ServletContext

6.config 表示当前JSP对应Servlert 的servletconfig 对象,获取servlet 信息

7.out 向浏览器输出数据 JSPWriter

8.page 当前 JSP 对应的 servlet 对象 servlet

9.exerption 表示jsp 页面发生的异常 Exception

常用的 request response session application pagecontest

request 常用方法:

1、String getParameter(String key) 获取客户端传来额的参数

2、void setAttribute(String key object value) 通过键值对的形式保存数据

3.object getAttribute(String key) 通过key值取出value

4.getrequestDispatcher(String path) 返回一个requestdispatcher对象,该对象的forword方法用于转发请求

5.String[] getparametervalues() 获取客户端传来的多个同名参数

6.void setcharaterEncoding(String charset) 指定每个请求的编码

http码: 200 正常但不显示

404 资源找不到

400 请求类型不匹配

500 Java程序抛出异常

response常用方法:

  • 1.sendredirect(string path) 重定向,页面之间的跳转

转发(getrequestdispispatcher)与重定向(sendredirect):

转发是将同一个请求传给下个页面

重定向是将一个新请求传给下个对象,之前的请求结束

转发:同一个请求在服务器之间传递,地址栏不变,也叫服务器跳转

重定向:由客户端发送一次新的请求来访问跳转之后的目标资源,地址栏改变,客户端请求.

如果两个页面之间需要request来传值,则必须使用转发,不能使用重定向

  • 2.setContentType(String type): 设置响应的内容类型,例如text/htmlapplication/json

  • 2.getWriter(): 获取一个PrintWriter对象,用于向客户端发送文本数据。

  • 3.setStatus(int status): 设置HTTP响应的状态码,例如200 OK404 Not Found

  • 4.addCookie(Cookie cookie): 向响应中添加一个cookie。

  • 5.setHeader(String name, String value): 设置指定响应头的值。

  • 6.sendError(int sc): 发送一个错误响应到客户端。

session常用方法:

用户会话 服务器无法识别每一个HTTP请求的出处(不知道来自哪个终端),他只会接受到一个请求信号,所以就存在将用户的想用请求发给其他人,必须有一种技术来让服务器知道请求来自呢,

会话:就是客户端与服务器之间发生的一系列连续的请求和响应的过程.

会话状态:指服务器和浏览器在会话过程中产生的状态信息,借助于会话状态,服务器能够把属于同一次会话的一系列请求和响应关联起来

实现会话的两种方式:

session: 储存客户信息,服务端

cookie: 存储用户信息,客户端

属于同意会话的请求都有一个相同的标识符,sessionID

String getid() 获取当前会话的ID

void setmaxInactiveinterval(int interval) 设置session的失效时间,单位为秒

int getmaxInactiveinterval() 获取当前session失效时间

void invalidate() 设置session立即失效 一般在退出登录是使用

void setattribute(string key object value) 通过键值对的形式储存数据

object getattribute(string key) 通过键值获取对应的数据

void removeattribute(string key) 删除

cookie

实现会话的一种机制,

Cookie 是服务端在 HTTP 响应中附带传给浏览器的一个小文本文件,一旦浏览器保存了某个 Cookie,在之后的请求和响应的过程中,会将其 Cookie 来回传递,这样就可以通过 Cookie 这个载体完成客户端和服务端的数据交互。

创建cookie

 Cookie cookie = new Cookie("name", "tom");response.addCookie(cookie);
  • void setMaxAge(int age) 设置 Cookie 的有效时间,单位为秒

  • int getMaxAge() 获取 Cookie 的有效时间

  • String getName() 获取 Cookie 的 name

  • String getValue() 获取 Cookie 的值

Cookie常用的方法

  • void setMaxAge(int age) 设置 Cookie 的有效时间,单位为秒

  • int getMaxAge() 获取 Cookie 的有效时间

  • String getName() 获取 Cookie 的 name

  • String getValue() 获取 Cookie 的值

Session和Cookie的区别

  • session:保存在服务器

    • 保存的数据是 Object

    • 会随着会话的结束而销毁

    • 保存重要信息

  • cookie:保存在浏览器

    • 保存的数据是 String

    • 可以长期保存在浏览器中,无会话无关

存储用户信息:

session: setAttribute("name","admin") 存 getAttribute("name") 取 生命周期:服务器端:只要WEB应用重启就销毁,客户端:只要浏览器关闭就销毁。 退出:sessioninvalidate

cookie: response.addCookie(new Cookie(name,"admin"))

代码部分:

 Cookie[] cookies = request.getCookies();for (Cookie cookie:cookies){if(cookie.getName().equals("name")){out.write("欢迎回来+"+cookie.getValue());}}

退出:setmaxage(0) 生命周期:不随服务器端的重启而销毁,客户端:默认是只要浏览器关闭浏览器就销毁,我们通过setMaxAge()方法设置有效期,一旦设置了有效期,则不随浏览器的关闭而销毁,而是由设置的时间来决定

JSP内置对象的作用域

  • 4个

    • page, request, session, application

    • setAttribute, getAttribute

  • page 作用域:对应的内置对象是 pageContext。

  • request 作用域:对应的内置对象是 request。

  • session 作用域:对应的内置对象是 session。

  • application 作用域:对应的内置对象是 application。

  • page < request < session < application

page只在当前页面有效

request在同一请求中有效

根据你提供的图片内容,这里是提取的文字:

  • 顶部文字:

    • "session 在一次会话内有效。"

    • "application 对应整个WEB应用的。"

    • "● 网站访问量统计"

  • 代码内容:

     Integer count = (Integer) application.getAttribute("count");if(count == null){count = 1;application.setAttribute("count", count);} else{count++;application.setAttribute("count", count);}

EL表达式

expression language 表达式语言,替代JSP页面中数据访问时的复杂编码,可以非常便捷的取出域对象中保存的数据,前提是一定要先把setattribute,EL就相当于简化的getattribute

表达式

 $变量名就是setattribute 对应的key值
  1. EL对于4种域对象的默认查找顺序: pageContext.request.session.application 按照上述的顺序进行查找,找到立即返回,在application 中也无法找到,则返回 null

  2. 指定作用域进行查找 pageContext: $(pageScope.name) request: $(requestScope.name) session: $(sessionScope.name) application: $(applicationScope.name)

以及EL表达式操作符的说明:

 && and|| or! not== eq!= ne< lt> gt<= le>= ge​null empty变量为null,长度为0的string size 为零的的集合

JSTL

JSP Standard Tag Library JSP 标准标签库,JSP 为开发者提供的一系列标签,使用这些标签可以完成一些逻辑处理,比如循环遍历集合,让代码更加简洁,不再出现 JSP 脚本穿插的情况。

实际开发过程中 EL 和 JSTL 结合起来使用,JSTL负责逻辑处理 EL负责展示

JSTL的使用

  1. 需要导入 jar 包(两个 jstl.jar standard.jar)存放位置web里的web-inf

  1. 在JSP页面开始的地方导入JSTL标签库

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
  1. 在需要的地方使用

<c:forEach items="${list}" var="user"><tr><td>${user.id}</td><td>${user.name}</td><td>${user.score}</td><td>${user.address.value}</td></tr>
</c:forEach>

JSTL优点:

1.提供了统一的标签

2.可以用于编写各种动态的功能

常用标签:

  • set、out、remove、catch

标签:
set: 向域对象中添加数据<%
request.setAttribute(key,value)
%>
<c:set var="name" value="tom" scope="request"></c:set>
${requestScope.name}
<%
User user = new User(1,"张三",66.6,new Address(1,"科技路"));
request.setAttribute("user",user);
%>
${user.name}
<hr/>
<c:set target="${(user)}" property="name" value="李四"></c:set>
${user.name}out: 输出域对象中的数据
<c:set var="name" value="tom"></c:set>
<c:out value="${(name)}" default="未定义"></c:out>
${user,name}remove: 删除域对象中的数据
<c:remove var="name" scope="page"></c:remove>
<c:out value="${name}" default="未定义"></c:out>catch: 捕获异常
<c:catch var="error"><%int a = 10/0;%>
</c:catch>

条件标签

这篇关于JSP简述的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1120877

相关文章

JSP 简单表单显示例子

<html><!--http://localhost:8080/test_jsp/input.html --><head><meta http-equiv="Content-Type" content="text/HTML; charset=utf-8"><title>input页面</title></head><body><form action="input.jsp" method

1、简述linux操作系统启动流程

1、简述linux操作系统启动流程 启动第一步--加载BIOS 当你打开计算机电源,计算机会首先加载BIOS信息,BIOS信息是如此的重要,以至于计算机必须在最开始就找到它。这是因为BIOS中包含了CPU的相关信息、设备启动顺序信息、硬盘信息、内存信息、时钟信息、PnP特性等等。开机时将ROM中的指令映射到RAM的低地址空间,CPU读取到这些指令,硬件的健康状况进行检查,按照BIOS中设置的启

基于JSP的实验室管理系统

你好呀,我是计算机学姐码农小野!如果有相关需求,可以私信联系我。 开发语言:Java 数据库:MySQL 技术:JSP技术 + Spring Boot框架 工具:IDEA/Eclipse、Navicat、Tomcat 系统展示 首页 用户个人中心 实验室管理 设备报备管理 摘要 随着社会的发展和科学技术的进步,互联网技术越来越受欢迎。网络计算机

在项目开发中,jsp页面不会少了,如何公用页面(添加页面和修改页面)和公用样式代码(css,js)?

在项目开发中,如何公用添加页面和修改页面? <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%><html><head><title>岗位设置</title><%@ include file="/WEB-INF/jsp/public/common.jspf"%></head><body> <!-- 标

通过js得到时间,并显示到jsp上

代码: 部分jsp代码: <div id="tt" style="height:60px;border: 0px;padding-top: 5px;padding-left:5px;"> <div style="float:left;">          <input id="startdate" style="width:120px;" editable="false" class="

请解释JSP中的九大内置对象及其作用。什么是Java Web中的请求转发和重定向?它们有什么区别?

请解释JSP中的九大内置对象及其作用。 JSP(JavaServer Pages)中的九大内置对象(也称为隐式对象或自动对象)是JSP容器为每个页面提供的Java对象,这些对象在JSP页面被转换成Servlet时自动可用,无需显式声明。这些对象极大地简化了JSP页面的开发,因为它们提供了对Web应用程序中常见功能的直接访问。以下是九大内置对象及其作用的详细解释: request:javax.

JSP的增删改查part2

增加显示数据库表格cdsn的功能 1. 》》对CdsnDao接口和方法,CdsnService接口和方法进行处理,并增加CdsnServlet用于对新建展示页面进行处理 对cdsnDao接口和方法增加 》》接口 //获取cdsn用户数据列表 public List<cdsn> getCdsnList();》》CdsnDaoImpl增加内容//获得数据库所有数据publ

JSP的增删改查part1

运用Myeclisp对数据库进行增删改查 要建立6个库 1).其中dao层用与连接数据库和对数据库进行相关操作; 2).entity层用于存放数据库连接后的实体数据; 3.)service层是在mcv三层模式中新添加一层,能够更加清晰的定义应用程序的边界,需要操作数据的时候,通过service层访问DAO层来实现。

【Java String】简述String类比较和常量池内存分析

一、引出正题 String 类型对象进行比较时,我们一般使用 equals() 的方式进行值比较,但是有时候可能会出现 == 对象比较的方式。 在使用 == 比较的时候,往往是和String在JVM内存存储结构有关,这也引起了部分同学使用时的错误,那么接下来我们来详细分析一下此问题。 二、举例说明 1、new String("xx")都是在堆上创建字符串对象。当调用 intern() 方

jsp技术(内置对象,动作标签,指令)

一、 九大对象:   内置对象(又叫隐含对象,有9个内置对象):不需要预先声明就可以在脚本代码和表达式中随意使用   1-out:   javax.servlet.jsp.JspWriter类型,代表输出流的对象。作用域为page(页面执行期)   request:javax.servlet.ServletRequest的子类型,此对象封装了由WEB浏览器或其它客户端生成地HTTP