JSP学习笔记(一)

xiaoxiao2025-02-05  12

1 What is JSP. 1)什么是JSP JSP: Java Server Page, Java EE组件,本质上是Servlet。 运行在Web Container.接收Http Request,生成Http Response JSP使得我们能够分离页面的静态HTML和动态部分。 2 Why,Where and How JSP. 1)为什么需要JSP Servlet: java class ---> out.println("<html>"); Jsp: script language ---> <html> 2)Jsp用在哪里 UI,表现层 Servlet----->Controll 图解JSP与Servlet的分工合作(比较没有JSP之前Servlet是如何唱独角戏) a)单独使用Servlet。 b)单独使用JSP(Model 1)。 c)结合JSP和Servlet(Model 2)。 3)如何开发Jsp Jsp文件后缀名--->.jsp Jsp文件的组成--->html+jsp脚本元素(Java语言编写) 不用在web.xml中配置 http://localhost:8080/baseJSP/welcome.jsp <%!String words="Welcome to our homepage,welcome to SD0702...";%> <%=words%> 3 JSP Principle. 图解运行原理 4 Base JSP(Statement,Script,Expression,Direction,Action). 1)Jsp声明 <%! %> 声明类成员 <%!int i=100;%> <%!String word="春田花花大学";%> <%!private int counter=0; public int count(){ return ++counter; } %> <h1><%=count()%></h1> 2)Jsp脚本 <% %> _jspService()中的局部代码 <%System.out.println("Hi,I like JSP.");%> <%Connection conn=DriverManager.getConnection(); Statement st=con.createStatement(); String sql="select ..."; ResultSet rs=st.executeQuery(sql); %> 比较 <%!int i=100;%> //成员变量 <%int i=100;%> //_jspService()方法中的局部变量 <%!public void hello(){}%> <%public void hello(){}%> //error 3) 表达式 <%= %> 输出数据至页面的当前位置 <%="Hello,JSP world!"%> <%=name%> //<%!String name="GiGi";%> <%=new java.util.Date()%> 4)指令 <%@ %> page include taglib page指令---->import,session,isThreadSafe,errorPage,etc import--->导入其它的包或类 <%@page import="java.util.Date"%> <%@page import="java.sql.*"%> <%@page import="java.util.*,java.io.*,java.net.*"%> session--->当前Jsp是否参与会话 default--->true <%@page session="true"%> request.getSession(); <%@page session="false"%> session="true"时,可用内建对象session直接访问会话 <%=session.getAttribute("name")%> isThreadSafe--->当前Jsp页面是否线程安全 default--->true <%@page isThreadSafe="true"%> 普通的Servlet,可以并发处理用户请求 <%@page isThreadSafe="false"%> 相当于Servlet实现了SingleThreadModel 接口,不能并发处理请求(强烈要求禁止使用该属性) errorPage isErrorPage--->Jsp页面中出现异常的处理方式 对于有可能出现异常的页面 <%@page errorPage="error.jsp"%> 对于处理异常的页面 <%@page isErrorPage="true"%> contentType--->设置Jsp内容的MIME类型 <%@page contentType="text/html; charset=gbk"%> 等价于Servlet:response.setContentType("text/html; charset=gbk"); include指令--->file 把目标页面的内容包含到当前页面,产生页面叠加以后的输出效果 <%@include file="title.html"%> <%@include file="booter.jsp"%> 在Jsp编译的时候被处理 taglib指令(放在JSTL处详细讲) <%@ taglib uri="http://www.polaris.com/tree" prefix="tree" %> <tree:gen/> //产生一个默认的树 自定义标签(可选) 5)动作 <jsp:actionName attributeName=attributeValue/> jsp:forward jsp:include jsp:useBean jsp:setProperty jsp:getProperty <jsp:forward page=""/> <jsp:forward page="b.jsp"/>相当于Servlet中通过RequestDispatcher.forward() <jsp:include page=""/> <jsp:include page="b.jsp"/>相当于Servlet中通过RequestDispatcher.include() 与<%include file=""/>比较:动作在运行期处理 Jsp中的注释: a、java方格注释 编译器会忽略掉此类注释中的内容 <%--ur comments--%> <%//ur comments%> <%/*ur comments*/%> <%//new java.util.Date()%> b、html风格注释 编译器会执行此类注释中的代码 <!--ur comments--> out.println("<!--ur comments-->") <!--new java.util.Date()--> 例子: 1)关于外星人的问卷调查 我欢迎外星人进入我们的世界,帮助我们发展。 我害怕外星人,无法接受他们进入我们的世界。 外星人很神秘,我不知道存不存在外星人。 我喜欢听UFO的故事,但也许那只是一些很好玩的故事而已。 不要和我谈论外星人,地球人已经很复杂了。 如果有外星人,我想和他们说: 嘿嘿,我们可以做朋友么? 2)NumberGuess.jsp 菜一个数字,如果猜对显示恭喜信息,猜错则提示客户猜的数字太小还是太大了。 5 JSP,Life cycle(与Servlet的生命周期比较). //JSP容器第一次装载jsp文件时调用一次 public void _jspInit(){ System.out.println(this.getClass()+":entering _jspInit()..."); } //每个请求都要调用一次 public void _jspService(HttpServletRequest request, HttpServletResponse response) throws java.io.IOException, ServletException { } //jsp文件被修改时,JSP容器会销毁旧的jsp文件对应的对象, //重新装载一次更新后的jsp文件的内容(只调用一次) public void _jspDestroy(){ System.out.println(this.getClass()+":entering _jspDestroy()..."); } 相关资源:jsp&servlet学习笔记(第2版)光盘
转载请注明原文地址: https://www.6miu.com/read-5024004.html

最新回复(0)