JSP简单总结

JSP实现简单登录跳转 1.JSP介绍 JSP即JavaServerPages,JSP技术使用Java编程语言编写类XML的tags和scriptlets,来封装产生动态网页的处理逻辑。网页还能通过tags和scriptlets访问存在于服务端的资源的应用逻辑。JSP将网页逻辑与网页设计的显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易。它是一种动态页面技术,它的主要目的是将表示逻... 阅读详情

   看了几天,感觉东西好多,做个JSP简单总结。

JSP隐含对象:

      打开之前那篇博客写的hello_jsp.java文件后,你会在_jspService()方法的下面发现该方法有声明好几个对象,如下:

public void _jspService(HttpServletRequest request, HttpServletResponse response)
        throws java.io.IOException, ServletException {

    PageContext pageContext = null;
    HttpSession session = null;
    ServletContext application = null;
    ServletConfig config = null;
    JspWriter out = null;
    Object page = this;
其实这几个就是JSP的隐含对象,即我们在JSP页面中不用声明就可以直接使用。因为我们写的代码都会在该方法下面,所以可以直接使用。

request,response,pageContext,session,application,config,out,page 加一个exception就是我们说的JSP的9个隐含变量。

request:是HttpServletRequest的一个对象;

response:HttpServletResponse对象

pageContext: 页面的上下文, 是 PageContext 的一个对象. 可以从该对象中获取到其他 8 个隐含对象. 也可以从中获取到当前
页面的其他信息.

session: 代表浏览器和服务器的一次会话, 是 HttpSession 的一个对象。浏览器从第一次打开到关闭,这算一次会话。

application: 代表当前 WEB 应用. 是 ServletContext 对象. *
  config: 当前 JSP 对应的 Servlet 的 ServletConfig 对象(几乎不使用). 若需要访问当前 JSP 配置的初始化参数, 
需要通过映射的地址才可以.

out: JspWriter 对象. 调用 out.println() 可以直接把字符串打印到浏览器上. 
page: 指向当前 JSP 对应的 Servlet 对象的引用, 但为 Object 类型, 只能调用 Object 类的方法(几乎不使用) 
exception: 在声明了 page 指令的 isErrorPage="true" 时, 才可以使用. 后面讲错误页面的时候用到;

对属性的作用域打大小:

pageContext(页面) < request(请求)<session(会话 )<application(当前WEB应用)

String name =request.getParameter("name");
	System.out.println(name);
	
	ServletRequest	 servletRequest=			pageContext.getRequest();
	
	System.out.println(servletRequest == request);
	
	System.out.println(session.getId());
	 
	
	System.out.println(application.getInitParameter("user"));
	System.out.println(config.getInitParameter("test"));
	out.println(session.getId());
	out.println("<br>");
	out.println("<br>");
	out.println(servletRequest);
	
	out.println(this);
	out.println("<br>");
	out.println("<br>");
	out.println(page);//this和page得到的结果一致

JSP表达式(expression)提供了将一个 java 变量或表达式的计算结果输出到客户端的简化方式,它将要输出的变量或表达式直接封装在<%= 和 %>之中。

<% 
	Date date = new Date();
	out.print(date);
%>

<%= date %>

     上面2种方法得到的结果是一致的。

JSP注释的格式:<%-- JSP 注释 --%> <!-- HTML 注释 -->。JSP注释可以阻止Java代码的执行。但HTML注释不行。

请求的转发和重定向:

//请求的转发
		//1.调用HttpServletRequest 的getRequestDispatcher()
		//获取对象。调用getRequestDispatcher()方法时需要传入转发的地址
		String path ="testServlet";
		RequestDispatcher requestDispatcher =request.getRequestDispatcher("/"+path);
		
		
		//2.调用requestDispatcher的forward(request,response)进行请求的转发
		requestDispatcher.forward(request, response);

请求的重定向:
//	执行请求的重定向,直接调用response.sendRedirect()方法
			//path为要重定向的地址
			String location ="testServlet";	
			response.sendRedirect(location);

 本质区别: 请求的转发只发出了一次请求, 而重定向则发出了两次请求. 


具体:

①. 请求的转发: 地址栏是初次发出请求的地址.
       请求的重定向: 地址栏不再是初次发出的请求地址. 地址栏为最后响应的那个地址 
       
②. 请求转发: 在最终的 Servlet 中, request 对象和中转的那个 request 是同一个对象. 
       请求的重定向: 在最终的 Servlet 中, request 对象和中转的那个 request 不是同一个对象.       
   
③. 请求的转发: 只能转发给当前 WEB 应用的的资源
       请求的重定向: 可以重定向到任何资源. 
       
④. 请求的转发: / 代表的是当前 WEB 应用的根目录 http://localhost:8090/web/
       请求的重定向: / 代表的是当前 WEB 站点的根目录. http://localhost:8090/


JSP指令:page,include,taglib.

page指令

page指令用于定义JSP页面的各种属性, 无论page指令出现在JSP页面中的什么地方, 它作用的都是整个JSP页面, 为了保持程序的可读性和遵循良好的编程习惯, page指令最好是放在整个JSP页面的起始位置。 

 page 指令常用的属性: 
①. import 属性: 指定当前 JSP 页面对应的 Servlet 需要导入的类. 
<%@page import="java.text.DateFormat"%>

②. session 属性: 取值为 true 或 false, 指定当前页面的 session 隐藏变量是否可用, 也可以说访问当前页面时是否一定要生成 HttpSession
对象. 
<%@ page session="false" %> 


③. errorPage 和 isErrorPage: 
> errorPage 指定若当前页面出现错误的实际响应页面时什么. 其中 / 表示的是当前 WEB 应用的根目录. 

<span style="font-size:14px;"><%@ page errorPage="/error.jsp" %> </span>
> 在响应 error.jsp 时, JSP 引擎使用的请求转发的方式. 
> isErrorPage 指定当前页面是否为错误处理页面, 可以说明当前页面是否可以使用 exception 隐藏变量. 需要注意的是: 若指定 
isErrorPage="true", 并使用 exception 的方法了, 一般不建议能够直接访问该页面. 
> 如何使客户不能直接访问某一个页面呢 ? 对于 Tomcat 服务器而言, WEB-INF 下的文件是不能通过在浏览器中直接输入地址的方式
来访问的. 但通过请求的转发是可以的!
> 还可以在 web.xml 文件中配置错误页面: 
<error-page>
  <!-- 指定出错的代码: 404 没有指定的资源, 500 内部错误. -->
  <error-code>404</error-code>
  <!-- 指定响应页面的位置 -->
  <location>/WEB-INF/error.jsp</location>
</error-page>
 
<error-page>
  <!-- 指定异常的类型 -->
  <exception-type>java.lang.ArithmeticException</exception-type>
  <location>/WEB-INF/error.jsp</location>
</error-page>

④. contentType: 指定当前 JSP 页面的响应类型. 实际调用的是 response.setContentType("text/html; charset=UTF-8");
通常情况下, 对于 JSP 页面而言其取值均为 text/html; charset=UTF-8. charset 指定返回的页面的字符编码是什么. 通常取值为 UTF-8

⑤. pageEncoding: 指定当前 JSP 页面的字符编码. 通常情况下该值和 contentType 中的 charset 一致. 

⑥. isELIgnored: 指定当前 JSP 页面是否可以使用 EL 表达式. 通常取值为 false. 


 include 指令:

 <%@ include file="b.jsp" %>

      1). include 指令用于通知 JSP 引擎在翻译当前 JSP 页面时将其他文件中的内容合并进当前 JSP 页面转换成的 Servlet 源文件中,
这种在源文件级别进行引入的方式称之为静态引入, 当前JSP页面与静态引入的页面紧密结合为一个Servlet。
      2). file属性的设置值必须使用相对路径
      3). 如果以 / 开头,表示相对于当前WEB应用程序的根目录(注意不是站点根目录),否则,表示相对于当前文件。

 jsp:incluce 标签:
    1). <jsp:include page="b.jsp"></jsp:include>
    2). 动态引入: 并不是像 include 指令生成一个 Servlet 源文件, 而是生成两个 Servlet 源文件, 然后通过一个方法的方式把目标页面包含进来:org.apache.jasper.runtime.JspRuntimeLibrary.include(request, response, "b.jsp", out, false);

 jsp:forward:

<jsp:forward page="/include/b.jsp"></jsp:forward><pre name="code" class="java"><% 
	request.getRequestDispatcher("/include/b.jsp").forward(request, response);
%>


以上2中效果是一样的。但使用forward标签,可以通过jsp:param子标签传入参数(include标签也可以使用该子标签)
<jsp:forward page="/include/b.jsp">
	<jsp:param value="abcd" name="username"/>
</jsp:forward>	
然后在b.jsp通过调用request.getParameter("username")可获得value=abcd.



JSP中简单的注册界面     今天在写一个注册界面的时候发现用户在输入用户名、密码、邮箱等内容时需要我们在前端进行简单的验证,当输入信息不满足我们的要求是我们应该禁止用户注册,网上查阅了一些信息再加上一些自己的理解写下了这个JSP网页,当然代码量很多,也不是很美观,有很多需要完善的地方,希望在接下来的日子里我能够将这个注册界面完成的更好。下面是我的JSP代码。title&gt;注册&lt;/title&gt; &lt;... 阅读详情

相关推荐

用JSP做一个简单的抽奖页面

首先写两个jsp文件 info.jsp <body> <% HashMap<String, Integer> scoreMap = (HashMap<String, Integer>)application.getAttribute("scoreMap"); if(scoreMap == null){ scoreMap = new HashMap<String, Integer>(); } String ip

weixin_45688753的博客 1581

用JSP做个简单的登录注册页面

用JSP做个简单的登录注册页面 第一步先分析整个过程,然后得出大概思路。 首先,进入登录页面(login.jsp),如下: 我们是没有账号的所以需要注册账号,所以这时候必须有一个注册页面(register.jsp),如下 紧接着注册成功后跳转成功页面,这时我们需要一个注册成功的页面(registersuccess.jsp),如下: 点击返回页面后,我们就可以在登录页面登录,然后登录时有登录成功和登录失败的页面。所以还要再写两个(loginsuccess.jsp loginfailure.jsp)如下

l1051663145的博客 9万+

JSP简单标签入门与实践指南

本文还有配套的精品资源,点击获取 简介:JavaServer Pages (JSP) 简单标签是一种简单实用的自定义标签处理机制,适用于初学者。它允许将HTML或XML文档与Java代码结合,以创建动态网页。本指南将详细介绍JSP标签的概念、简单标签库的创建和使用,以及如何结合JSP EL表达式来处理数据。通过定义TLD文件、实现标签处理接口和编写 doTag() ...

weixin_36289742的博客 551

纯JSP简单登录实例

记一下,免得以后忘记了,又要去查。 文件共有四个web.xml、login.jsp、logout.jsp、welcome.jsp四个文件 测试环境:Tomcat 6.0.x 假设项目名称是LoginSample,我的目录结构是这样的 ...\webapps\LoginSample\WEB-INF\web.xml ...\webapps\LoginSample\login.jsp ...

lee353086的专栏 3万+

GPU大规模集群运维

CUDA(Compute Unified Device Architecture),是显卡厂商NVIDIA推出的通用并行计算平台和程序模型,该架构使GPU能够解决复杂的计算问题。它包含了CUDA指令集架构(ISA)以及GPU内部的并行计算引擎。开发人员可以使用C语言来为CUDA架构编写程序,所编写出的程序可以在支持CUDA的处理器上以超高性能运行。CUDA官方文档CUDA的软件环境允许开发者使用C++等高级编程语言开发程序。

weixin_42795092的博客 1740

Windows本地部署Qwen3-14B实战指南:Ollama+Open WebUI零Docker方案

大语言模型本地部署是AI工程化落地的关键环节,其核心在于推理框架兼容性、硬件加速适配性与端到端稳定性。Ollama作为轻量级模型运行时,原生支持Windows DirectML与CUDA,规避了Docker/WSL2虚拟化开销和llama.cpp编译风险;Qwen3-14B则凭借128K上下文、Tool Calling原生支持及中文长文本结构化能力,成为政务、金融等场景首选。本文聚焦Windows平台真实约束——显存阈值、驱动版本匹配、路径编码兼容、离线知识库集成(RAG)等工程细节,提供经63台Windo

weixin_32136203的博客 413

制作简单的JSP页面

JSP(Java Server Pages)是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。它是在传统的网页HTML文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件(.jsp)。 Web服务器在遇到访问JSP网页的请求时,首先对其中的Java代码进行处理,然后将执行结果连同JSP文件中的HTML代码一起返回给客户端的浏览器。 插入的Java 程序段可以操作数据库、重新定向网页等,以实现建立动态网

Z_Data的博客 6565

考虑风和浪的影响的旋筒帆船航线优化方法研究

针对旋筒帆船进行航线优化的实现方法,包括升阻力系数的数值模拟、升阻力系数的多元非线性回归建模、旋筒帆船6DOF摇荡运动建模分析以及考虑风、浪影响的旋筒帆船的航线优化研究。

m0_63225885的博客 1163

一个简单的jsp程序

这是一个简单的JSP页面 <% int i,sum=0; for( i=1;i<=100;i++){ sum=sum+i; } %> 1到100的连续和是: 将该文件保存为example1.jsp 保存到Tomcat 中RooT目录中,然后运行在浏览器中输入 http://localhos

Sunshine 2444

SAP成本核算-事中控制(成本对象控制/成本归集与结算)

本文详细介绍了SAP系统中工单成本归集与结算的全流程管理。主要内容包括:1)工单成本三阶段归集(投料、报工、入库)的具体操作与计算方法;2)工单实际成本结算七步骤:从实际费用归集、成本分割、作业价格计算到差异结算的全过程;3)关键注意事项如测试运行验证、价格单位确认、无在制品处理等。通过标准价计算、实际作业重估等机制,系统实现了生产成本从计划到实际的精确核算,最终生成财务所需的差异结算凭证。所有操作均提供单工单和批量处理两种方式,满足不同业务场景需求。

小九啥也不会 1364

简单的jsp

看一个简单的jsp程序:helloworld.jsp#vim /usr/tomcat5.5/webapps/ROOT/myjsp/helloworld.jspJsp-----helloworld!---显示时间Hello World!现在的时间是://利用Javas标准库显示时间  Date date = new Date();  out.println(date);%>保存.用浏览器打开相应的U

学习日记 1182

深度学习入门:一文详解BP神经网络

在BP神经网络中,输入层和输出层的节点个数都是确定的,而隐含层节点个数不确定,那么应该设置为多少。实际上,隐含层节点个数的多少对神经网络的性能是有影响的,有一个经验公式可以确定隐含层。上面是对隐含层和输出层之间的权值和输出层的阀值计算调整量,而针对输入层和隐含层和隐含层的阀值调。在BP神经网络中,输入层节点没有阀值。神经网络,神经网络在机器学习中应用比较广泛,比如函数逼近,模式识别,分类,数据压缩,数据。要求输入模式要有足够的随机性,对输入模式的噪声比较敏感,即对于剧烈变化的输入模式,训。

Machine Learning with Tutors 4万+

使用JSP实现简单项目教程

使用JSP实现简单项目教程 去发现同类优质开源项目:https://gitcode.com/ 本仓库提供了一个使用JSP(JavaServer Pages)技术实现的简单项目示例。该项目包括用户登录、注册以及新闻发布功能,适合初学者学习和参考。 项目概述 该项目分为以下几个主要部分: 登录功能: login.jsp:用户登录界面。 doLogin.jsp:处理用户登录请求。 注册功能:...

gitblog_06578的博客 356

AI智能体评估基准AgentBench:从原理到实战的完整指南

在人工智能领域,智能体(AI Agent)的评估是衡量其实际应用能力的关键环节。评估基准通过设计标准化的测试任务,系统性地检验智能体的推理、规划和工具使用等核心能力。其技术价值在于为模型迭代和产品选型提供了客观、可复现的量化依据,能有效推动技术从演示走向工程落地。典型的应用场景包括模型能力评测、智能体框架对比以及具体应用(如自动化运维、智能客服)的性能验证。本文聚焦于清华团队推出的AgentBench,它作为一个多维度的综合评估套件,涵盖了从操作系统、数据库操作到网页浏览、数字卡牌游戏等八个贴近真实世界的任

weixin_27207591的博客 599

Python爬虫实战:携程/飞猪酒店信息爬取与动态价格分析

在当今数字化旅游时代,酒店预订平台的复杂筛选条件和动态定价机制为数据分析和价格监控带来了巨大挑战。本文将深入探讨如何使用最新的Python爬虫技术来抓取携程和飞猪平台的酒店信息,处理复杂的筛选条件,并解析动态价格数据。本文详细介绍了如何使用最新的Python爬虫技术来抓取携程和飞猪平台的酒店信息。通过结合httpxplaywrightparsel强大的反反爬虫能力:通过浏览器指纹伪装、请求签名、智能延迟等技术应对各种反爬措施高效的数据解析:使用CSS选择器和XPath精确提取所需信息灵活的数据存储。

2201_76125261的博客 414

JSP简单的注册页面

css样式 <style type="text/css"> .head { color: FF0000; font-size: 35pt; text-align: center; } .btnTd { text-align: center; } table,tr,td { border: 1px solid #000; } table { margin: 0 auto; } </style> 主代码 <body> <div class="hea

weixin_47803030的博客 876

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

jsp的简单应用

JSP简介 JSP(Java Server Pages)是JavaWeb服务器端的动态资源,它与html页面的作用是相同的,显示数据和获取数据。 jsp = html + java脚本 + jsp标签(指令) 3种java脚本: <%…%>:写java代码片段,(类似方法) <%=…%>:用于输出,用于输出一条表达式(或变量)的结果。 <%!…%>:声明,用来创建类的成员变量和成员方法(类似与类) jsp注释:<%– … –%> 当服务器把j

Yu_lumingfei的博客 472

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

JSP写一个简单的登录界面

jsp的简单登录功能实现

yao10241113的博客 1万+

用JSP+JavaBean+Servlet编写一个简单的用户留言板

用JSP+JavaBean+Servlet编写一个简单的用户留言板(不用数据库) 先整一个Message,jsp文件,把表单什么的都弄好 <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ page import="java.util....

qq_41857955的博客 6811

JSP简单标签

<br />第9章 简单标签 9.1 简单标签知识 在Jsp2.0中定义SimpleTag 接口用于替换传统的标签开发的接口,它只有一个方法doTag() 用于取代传统的doStartTag()、doEndTag()、doAfterBody() 等方法。 1、 JSP引擎调用标签处理器对象的setJspContext(),将JSP页面的pageContext()对象传递给标签处理器对象。 2、 JSP引擎调用setParent(),将父标签处理器对象传递给标签处理器对象。

yangxueyong的专栏 761

jsp简单购物结算

jsp简单购物结算 欢迎界面 <h1>欢迎</h1> <form name="form1" method="post" action="choose.jsp"> <h2>输入您的信息:<br> <input name="user" type="text" id="user"/><br> <input type="radio" name="

weixin_53233343的博客 1712

JavaWeb基础-JSP的简单学习

JSP的的简单学习 什么是JSP? JSP:Java Server Pages (Java服务器端页面),其实就在HTML中嵌入Java代码。 为什么学习JSP?  SUN公司提供了动态网页开发技术:Servlet。Servlet自身有一些缺点,SUN公司发现了这些问题,推出了一个新的动态网页开发技术JSP。 Servlet的缺点:  Servlet需要进行配置,不方便维护  Servlet很难向网页中输出HTML页面内容 JSP的运行原理 创建一个JSP页面 demo01.jsp <%-- C

二丫的博客 232

JSP完成简单的登陆程序

JSP完成简单的登陆程序1.login.jsp       用户输入信息的表单                     登陆                            登陆范例-----用户及密码固定                                                            

1937

JSP的概述;JSP的运行原理 JSP的简单使用

JSP的概述 JSP的概述 JSP:Java Server Pages (Java服务器端的页面),动态网页技术标准。其实就在HTML中嵌入Java代码和JSP标记(tag)。 从而形成后缀名为(*.jsp) 用JSP开发的Web应用是跨平台的。 Page :页面   pages:页面  server:服务器 为什么学习JSP:SUN公司提供了动态网页开发技术:Servlet。S

boss_way的博客 646

jsp 语法和简单的xss语句

servlet 一种技术,也是一个在服务器端的程序,用于处理http请求tomcat 是一个容器,为servlet 提供了一个环境,根据请求的url决定将请求交给哪一个servlet。

2401_87576048的博客 1165
上一篇: JSP运行原理(观察源代码)
下一篇: Cookie小结以及Cookie的小应用
foolishAndStupid
博客等级 码龄12年 53粉丝 50原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值