JavaWeb学习总结-03 JSP 学习和使用
一 JSP
JSP 是Java Server Pages的缩写,在传统的网页HTML文件中加入 Java 程序片段和JSP标签就构成了JSP网页.
1 JSP与Servlet的生成方式
Servlet首先被编译成class文件,然后被服务器调用
JSP首先被转换为Servlet(java文件),然后在被编译为class文件,最后由服务器调用。
查看%/tomcat8\work\Catalina\localhost下项目中的jsp对应的Servlet的 java,class文件
2 JSP 九种内置对象
- request,请求对象
- response,响应对象
- pageContext,页面上下文对象
- session,回话对象
- application,应用程序对象
- out,输出对象
- config,配置对象
- page,页面对象
- exception,异常对象
需要注意内置对象的对象名要书写正确,在java语言中是对大小写敏感的。
request
request对象 代表客户端发送过来的请求,可以获得客户端发送的一切信息,不需要new,直接就可以用了。例如获得在form填写的信息,是对常用的对象。。
response
response对象代表的是对客户端的响应。使用response对象来组织发送到客户端的数据。在页面中需要向客户端发送数据时,直接使用out对象就可以。
<% response.getWriter().write("hello, "); %>
pageContext
pageContext对象表示页面上下文对象,一般情况下用的不是很多。
session
session对象代表服务器与客户端建立的回话。http是无状态的协议,session用来保存客户端状态信息。
application
application 对象负责提供应用程序在服务器运行时的一些全局信息。
out
out对象代表向客户端发送数据的对象。
config
config对象读取配置信息,与 servlet一起配合使用。
page
page对象代表正在运行时由jsp文件产生的类对象。
exception
exception对象代表了jsp文件运行时产生的异常对象,此对象不能再一般jsp文件中直接使用。
只能在使用了<%@ page isErrorPage="true" %>的jsp文件中使用。
3 掌握知识
1)<%= %/> 和 out.println()的作用,与System.out.println()的区别。
JSP Script的用法。
2)<%@page import="" %> 的作用
对于java来说,可以使用import导入相关的类和接口,如果是jsp需要使用导入标签来导入相关的类和接口。
4 获得Web项目绝对路径
String path = request.getContextPath(); String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + path + "/";
二 例子
1. 第一个JSP
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + path + "/"; System.out.println("basePath" + basePath); %> <!DOCTYPE HTML > <html> <head> <base href="<%=basePath%>"> <title>title-eee</title> <meta charset="utf-8"> </head> <body> <% for (int i = 0; i < 10; i++) { %> <h2> <% out.println("你好<br/>"); %> </h2> <% } %> </body> </html>
<%@ page language="java" import="java.util.*" > 指令
1)属性languate="java"
声明脚本语言的种类。目前只能用java .
2)import="包名.类名"
需要导入的java包的类名或接口名称,下面的包在JSP编译时已经导入了,所以就不需要在知明导入了:
java.lang.* java.servlet.* javax.servlet.jsp.* javax.servlet.http.*
2 session例子
logon.jsp
<%@ page language="java" pageEncoding="utf-8"%> <!DOCTYPE HTML > <html> <body> <form action="logon_session.jsp"> 姓名 <input type="text" name="userName"> <input type="submit" value="提交"> </form> </body> </html>
logon_session.jsp
<%@page contentType="text/html;utf-8" pageEncoding="utf-8"%> <HTML> <BODY> <% String Name=request.getParameter("userName"); session.setAttribute("LogName", Name); %> 你的名字"<%=Name%>"已经写入session <br> <a href='check_session.jsp'>check</a> </BODY> </HTML>
check_session.jsp
<%@page contentType="text/html;utf-8" pageEncoding="utf-8"%> <HTML><BODY> <% String yourName=(String)session.getAttribute("LogName"); if (yourName == null) { %>您还未登录 <% }else { %> "<%=yourName%>"已经登录 <% } %> </BODY></HTML>
3 application例子网页计数器
testapplication1.jsp
<%@ page contentType="text/html;charset=utf-8" pageEncoding="utf-8"%><html> <head><title>网页计数器</title><head><body><% if (application.getAttribute("counter")==null) application.setAttribute("counter","1"); else{ String strnum=null; strnum=application.getAttribute("counter").toString(); int icount=0; icount=Integer.valueOf(strnum).intValue(); icount++; application.setAttribute("counter",Integer.toString(icount)); } %>您是第<%=application.getAttribute("counter")%>位访问者!</body></html>
尝试把页面中用到的application对象换成session对象有什么不同?结果还一样吗?
JavaWeb学习总结-03 JSP 学习和使用的更多相关文章
- JavaWeb 后端 <五> 之 JSP 学习笔记
一.JSP简介 1.也是SUN公司推出的开发动态web资源的技术,属于JavaEE技术之一.由于原理上是Servlet, 所以JSP/Servlet在一起. 二.HTML.Servlet和JSP 1. ...
- Python学习总结 03 Plotly 学习总结
一 Plotly 简介 Plotly是另一个免费进行数据分析和绘制图表的APP,建立在d3.js上. Plotly图可下载为SVG,EPS或PNG格式,并简单地导入到Illustrator或者Phot ...
- JSP 学习总结 03 核心组件 Servlet
1 Servlet 简绍 Servlet(Server Applet)是Java Servlet的简称,称为小服务程序或服务连接器,用Java编写的服务器端程序,主要功能在于交互式地浏览和修改数据,生 ...
- JavaWeb学习总结-04 Servlet 学习和使用
一 Servlet 1 Servlet概念 Servlet时运行在服务器端的Java程序. Servlet的框架核心是 javax.servlet.Servlet 接口. 所有自定义的Servlet都 ...
- JSP学习网站
JSP学习网站 http://www.yiibai.com/jstl/ http://www.w3cschool.cc/jsp/jsp-jstl.html
- JSP学习笔记
JSP学习笔记 Jsp网页主要分为Elements与Template Data两部分. Template Data:JSP Container不处理的部分,例如HTML内容 Elements:必须经由 ...
- JSP学习笔记(三):简单的Tomcat Web服务器
注意:每次对Tomcat配置文件进行修改后,必须重启Tomcat 在E盘的DATA文件夹中创建TomcatDemo文件夹,并将Tomcat安装路径下的webapps/ROOT中的WEB-INF文件夹复 ...
- JSP 学习二
在基于昨天对JSP学习的基础上,今天我们来学习JSP的指令和JSP 对中文的处理. 一.JSP指令简介 JSP 指令是为JSP引擎而设计,它并不直接产生任何可见的输出,而只是告诉引擎如何处理JSP页面 ...
- java web jsp学习笔记--概述-常用语法,指令,动作元素,隐式对象,域对象
JSP学习笔记 1.什么是jsp JSP全称是Java Server Pages,它和servle技术一样,都是SUN公司定义的一种用于开发动态web资源的技术.JSP/Servlet规范.JS ...
随机推荐
- iOS搜索附近的位置(类似微博朋友圈位置)
说什么都是苍白的,直接上图~ 在某些情况下,我们需要获取用户周边的位置,来让用户选取.例如微信的朋友圈,在发一条朋友圈时可以选择地点,就是使用这样的功能. 基于以上的情况(其实也就是为了模仿微信),有 ...
- HTML5+JS 《五子飞》游戏实现(二)路线分析和资源准备
上一节 里沃特与我们分享了<五子飞>的下棋规则,可能有些伙伴看得不清楚,像我们码农还是看到代码比较靠谱.下面就把可以走棋的路线跟大家说一下. 假设从左上角开始,以0开始编号,往右数(没看第 ...
- 仿造slither.io第一步:先画条蛇
前言 最近 slither.io 貌似特别火,中午的时候,同事们都在玩,包括我自己也是玩的不亦乐乎. 好久好久没折腾过canvas相关的我也是觉得是时候再折腾一番啦,所以就试着仿造一下吧.楼主也没写过 ...
- Sentinel-Redis高可用方案(二):主从切换
Redis 2.8版开始正式提供名为Sentinel的主从切换方案,Sentinel用于管理多个Redis服务器实例,主要负责三个方面的任务: 1. 监控(Monitoring): Senti ...
- JPEG格式
Jpg文件格式[参考] 微处理机中的存放顺序有正序(big endian)和逆序(little endian)之分.正序存放就是高字节存放在前低字节在后,而逆序存放就是低字节在前高字节在后.例如,十六 ...
- swfupload提示“错误302”的解决方法
1.关于图片上传控件,flash控件的显示效果要好一些,本人使用swfupload 2.swfupload上传控件使用方式详见文档 http://www.leeon.me/upload/other/s ...
- [转]搞ACM的你伤不起(转自Roba大神)
劳资六年前开始搞ACM啊!!!!!!!!!! 从此踏上了尼玛不归路啊!!!!!!!!!!!! 谁特么跟劳资讲算法是程序设计的核心啊!!!!!! 尼玛除了面试题就没见过用算法的地方啊!!!!!! 谁再跟 ...
- C语言输入输出整数
scanf("%llu", &x); printf("%llu\n", x); scanf("%u", &x); print ...
- Cause: org.apache.ibatis.reflection.ReflectionException: Could not set property 'orderdetails' of 'class com.luchao.mybatis.first.po.Orders' with value 'Orderdetail [id=null, ordersId=3, itemsId=1, it
从上面异常的解释来看是因为反射不能将Orders设置到orderdetails属性上,仔细检查了MyBatis的配置文件,发现: <collection property="order ...
- css3实现的3中loading动画效果
一.css3中animation动画各种属性详解: animation Value: [<animation-name> || <animation-duration> ...