- 第一个 JSP 程序
- JSP简介
a、JSP全名为Java Server Pages,中文名叫Java服务器页面,其根本是一个简化的Servlet设计。
b、JSP是在传统的网页HTML文件中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件,后缀名为(*jsp)。
c、用JSP开发的Web应用是跨平台的,既能在Linux下运行,也能在其他操作系统上运行。 - JSP程序的执行过程
Ps:这里的hello.java文件其实是servlet程序。 - JSP程序的生命周期
- JSP声明语法
Ps:编译时,会直接转成Java类文件中的【成员变量】和【成员方法】。<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Insert title here</title> </head> <body> <%! String str = "hello world"; String getStr(){ return "hello world2"; } %> <hr> <% out.println(this.str); %> <hr> <%= this.getStr() %> </body> </html>
- JSP程序脚本
a、包括变量的声明、表达式和程序逻辑。
b、声明的变量转换为_service方法中的变量,因而是局部变量。
c、语句块可以自由地与将Java脚本与页面代码组合使用。
d、<%! %> // 成员变量、方法;<% %> // 局部变量、方法。
Ps:Java代码和HTML代码交互式设计。<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Insert title here</title> </head> <body> <% int i = 10; %> <% if(i > 10){ out.println("i > 10"); }else{ out.println(" i <= 10"); } %> <hr> <%if(i > 10){ %> <span>i > 10</span> <%}else{ %> <span>i <= 10</span> <%} %> </body> </html>
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Insert title here</title> </head> <body> <%! int totalCount = 0; %> <% int localCount = 0; totalCount ++; localCount ++; %> <% out.println(totalCount); out.println("<br>"); out.println(localCount); %> </body> </html>
Ps:选项d。刷新12次。
- JSP注释
- JSP内容输出表达式
- JSP包引入语法
- JSP - 起源、执行过程、运行原理、生命周期
- JSP内置对象
a、简介
- 请求与响应模式JSP内置对象。
1.内置对象(又叫隐含对象,有9个内置对象):不需要预先声明就可以在牌本代码和表达式中随意使用。
2.为什么要使用内置对象?
- 作用域:pageContext,request,session,aplication。
b、request、out、response对象应用
- request:封装了由WEB浏览器或其它客户端生成地HTTP请求的细节(参数,属性,头标和数据)。
- request作用域:用户的请求周期。
- out:代表输出流的对象。
- response:封装了返回到HTTP客户端的输出,向页面作者提供设置响应头标和状态码的方式。
c、pageContext、page对象应用
d、session、config、exception对象应用
e、aplication对象应用 - out 对象
- request 对象
a、作用域
- request作用域在相邻两个web资源之间共享同一个。
- request请求对象时使用。
Ps:13 line 针对绑定在哪个*.jsp上有效。 - response 对象
- pageContext 对象
- pageContext:提供所有四个作用域层次的属性查询和修改能力,它也提供了转发请求到其它资源和包含其他资源的方法。<!-- index.jsp --> <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> </head> <body> <!-- pageContext的作用: 1、forward方法来完成请求的转发 2、include方法 3、pageContext可以来获取其他的内置对象。getRequest,getSession.... 4、作用域在当前页面 --> <% //pageContext.include("header.jsp"); pageContext.forward("a.jsp?name=imooc"); %> <% pagecontext.setAttribute("age",12); %> <br/> pageContext作用域中获取的值:<%=pageContext.getAttribute("age")%> </body> </html>
<!-- a.jsp --> <%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Insert title here</title> </head> <body> <%= pageContext.getRequest().getParameter("name") %> </body> </html>
- page 对象
- page:代表了正在运行的由JSP文件产生的类对象。
- page作用域:当前执行页面。 - session 对象
a、session:主要用于跟踪会话什么是会话?(作用域:会话期间)
A:会话是代表用户第一次进入当前系统直到退出系统或关闭浏览器,在此期间与服务器的一系列交互。
b、设置session有效时间的方法:
session.setMaxInactiveInterval(int second)参数为秒如果设置session有效时间为5分钟,则为:session.setMaxInactivelnterval(5*60)。
c、API:setAttribute().../getAttribute()... - config 对象(获取配置信息)
web.xml
login.jsp
效果图 - exception 对象(异常对象)
<%@ page language="java" contentType="text/html; charset=UTF-8" errorPage="error.jsp" pageEncoding="UTF-8" import="com.imooc.db.*,com.imooc.bean.*,java.util.*"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title>Insert title here</title> </head> <body> //... <% }else{ throw new Exception("账号和密码错误"); } %> </body> </html>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" isErrorPage="true"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> </head> <body> <!-- 1、exception对象只能在错误页面页面中使用,page加入一个属性 isErrorPage="true"(default:false) 2、有一个页面出现了异常,在页面中指定一个错误处理的页面,page指令当中,errorpage来指定。 --> <%= exception.getMessage() %> </body> </html>
- application 对象
- application:提供了关于服务器版本,应用级初始化参数和应用内资源绝对路径,注册信息的方式。
- application作用域:web容器的生命周期(即:服务器开启时,application生命周期就开始,直到服务器关闭为止)。 - JSP 报错问题:
1、“String cannot be resolved to a type” :如果是在导入的项目的情况下,多数情况下就是jdk版本与项目的jdk版本不匹配,解决方法:右击工程->Build Path->Configure Build Path->Libraries,双击JRE System Library,如果出现红叉,表示没有选择JRE,这是需要选中对应的JDK,里面包括JRE。这样就OK了。 - JavaWeb - JSP、Servlet、Request、Response、Get、Post 中文乱码问题
- 安全访问:避免让用户直接访问(即使手动在路径上加上“WEB-INF”也是没用的,依旧404)(在Servlet里控制WEB-INF路径是有效的)详情:JavaWeb - 访问 WEB-INF 资源几种方式
- JSP 共享配置(如:绝对路径)
// common.jsp <% String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + request.getContextPath(); request.setAttribute("basePath", basePath); %>
- 待更新...
JSP - 基础篇
最新推荐文章于 2024-01-14 03:45:11 发布