JSP编程

1> Serlvet 生命周期 
    A 构造  默认情况第一次使用的时候通过单例模式创建一个servlet对象
    B init  初始化  当构造了之后就会调用初始化方法 只调用一次
    C server 服务    每次发出请求的时候调用可以调用n次  doGet doPost doPut
    D destory 销毁   关闭服务软件重新部署的时候销毁servlet对象 
  2>ServletConfig对象
获取serlvet初始化参数
   调用的时候用
  this.getInitParameter(参数名)
 3>ServletContext对象 
   获取上下文信息
    A 获取全局参数
    ServletContext  sc=this.getServletContext()
    sc.getInitParameter("ecode");      
     sc.getContextPath()   项目路径  --项目名字
     sc.getRealPath()      发布路径  --发布后在tomcat中的文件路径  

JSP编程

1 jsp 进入   Java Server Pages
  Servlet作用:用java语言开发动态资源(  java 流 )的技术.
  JSP作用:用java语言开发动态(java 流)+静态资源(html)的技术 
2 JSP特征
  JSP必须交个tomcat服务器解析
  JSP可以写java代码和HTMl代码 
3 JSP 执行的过程
1
http://127.0.0.1:8080/web/index.jsp
2
tomcat中扫描到index.jsp文件
3
tomcat将index.jsp文件解析为index_jsp.java 文件
4
tomcat的JDK将 index_jsp.java转换字节码 index_jsp.class文件
5
tomcat构造和初始化index_jsp对象,其实可以理解为servlet对象
6
tomcat调用index_jsp.class中的service方法
7
tomcat的service方式会通过输出流返回HTML代码到浏览器
8
浏览器接收HTML 并且解析成页面效果显示
4 JSP生命周期
 1> 翻译 jsp--->java文件
2 编译 java-->class文件(  servlet程序)
3 构造方法(第一次访问)
4 _jspInit方法 (第一次访问)
5 _jspService方法
6_jspDestory() 方法

JSP语法

1 JSP 模板
  JSP页面中会自动添加HTML代码,该JSP是模板形式
2  JSP表达式
语法:<%=变量或者表达式%>
作用:向浏览器输出变量或者表示式通过计算后的结果
  A 表达式的原理就是翻译成out.prin()流输出HTML/TEXT格式到页面。
  B 表达后面是不需要用分号结束的。
3 JSP 脚本
   语法:<% java代码   %>
   作用:执行java代码
4JSP声明
 语法:<% ! 变量或者方法 %>
 作用:声明变量和方法 后面JAVA程序可以调用 
5JSP注释
  语法:<%-- 注释--%>
        <%// 注释--%>
        <%/* 注释*/%> 
6 JSP 编译指令编译前执行
语法:<%@ %>
  1 include指令
   <%@ includefile="top.jsp"%> 
   在编译成.class文件之前,键将top.jsp里面的所有代码拷贝到当前位置 
  2 page指令
  语法 <%@  page  %>
  作用:告诉tomcat如何翻译当前jsp文件
<%@ page
language="java"        --使用的语言
import="java.util.*"   --需要导入的类
pageEncoding="UTF-8"   --jsp编码方式
contentType="text/html; charset=UTF-8" --tomcat将html流发送给浏览器的文件类型和编码方式
errorPage="error.jsp"   --当前jsp页面解析错误的时候就会跳转到error.jsp去
isErrorPage="false"  --当前页面是不是错误导向页面
 %> 
3 taglib指令
   语法<%taglib  %>
   作用:标签指令用来解析标签效果
  <%@taglib  prefix="c"  uri="http://java.sun.com/jsp/jstl/core"  %> 
7 动作指令  编译后执行
  <jsp:动作   />
<jsp:useBean>  用来实例化一个对象  对象名用id表示 class类路径
<jsp:setProperty> 将一个对象中的属性赋值
<jsp:getProperty>  取对象中属性的值
 <jsp:useBean id="s3"class="com.bw.bean.Student"></jsp:useBean>
 <jsp:setProperty property="name" name="s3" value="shunge"   />
 <jsp:getProperty property="name"name="s3"/>
<jsp:forward>  转发到另外的页面    直接跳转到指定的页面
<jsp:forward page="index.jsp"></jsp:forward>
<jsp:include> 包含编译后另外一个页面的信息  
<jsp:forward page="index.jsp">
 <jsp:param  name="username"   value="god"  />
 <jsp:param  name="pwd"   value="123456"  />
 </jsp:forward>
<jsp:param> 传递参数和值
 <a  href=index.jsp?username=god&pwd=12345> 跳转页 </a>

JSP内置对象 

九大内置对象

jsp

servlet

 

对象名

类型

使用范围

request

HttpServletRequest

请求 浏览器--->服务器

response

HttpServletResponse

返回 服务器--->浏览器

config

ServletConfig

用来获取web.xml中的信息

application

ServletContext

整个项目中的全局信息

exception

Thrawable

捕获异常 try/catch  throws

page

this

当前对象,当前页面对象

out

JspWriter---->PrintWriter

当前页面输出流

pageContext

PageContext

当前页面的上下文,整个页面

Session

HttpSession

会话  浏览器和服务器通讯

1 out  对象  JspWriter 带缓冲的PrinterWriter  就是输出流  

  使用范围是当前页面,超出了当前页无效

PrinterWriter    直接向浏览器输出内容

JspWriter       向Jsp 缓冲区写内容

‘out.print()

‘out.println(); 

2 pageContext 对象当前页面的上下文    

  使用范围是当前页面,超出了当前页无效

存值 pageContext.setAttribute("username","zhangsan");

取值pageContext.getAttribute("username") 

3 page==this 对象一般用在编译指令中 <%@ page   %>

4 request 请求  浏览器到服务器

当前请求存属性值

request.setAttribute("name","godyang");

当前请求取值

request.getAttribute("name")

请求传递参数

<a href="b.jsp?name=shunshun">  b.jsp</a>

或者

  <form  action="b.jsp"  method=post  >

   <input  type=text name="name" value="shunshun" />

   </form>

 

取得请求参数的值

request.getParameter(参数名);  request.getParameterValues(参数名)

5 reponse  返回  服务器返回到浏览器

获取返回流

PrintWriter out = response.getWriter();

返回内容形式

response.setContentType("text/html");

返回的编码

response.setCharacterEncoding("UTF-8");

页面重定向

response.sendRedirect("index.jsp");

浏览器端保存cookie对象

response.addCookie()

 

 

6 session 会话  浏览器和服务器通讯    当浏览器关闭的时候会话结束

当浏览器第一访问服务器的时候就会产生一个会话

保存会话信息

 session.setAttribute("uname","abc");

获取会话信息

 session.getAttribute("uname");

7 application 应用   tomcat启动的时候整个项目就是一个应用

  当把值存入应用中,只有当tomcat关闭的时候才销毁

保存应用信息

application.setAttribute("app","appInfo");

获取应用信息

 application.getAttribute("app"); 

8 config   读取web.xml中的配置信息

web.xml

  <servlet>

  <servlet-name>configInfo</servlet-name>

  <jsp-file> /config.jsp </jsp-file>

  <init-param>

  <param-name>counter</param-name>

  <param-value>20000</param-value>

  </init-param>

  </servlet>

  <servlet-mapping>

  <servlet-name>configInfo</servlet-name>

  <url-pattern>/configUrl</url-pattern>

  </servlet-mapping>

config.jsp

   counter= <%=config.getInitParameter("counter")%>

访问

  http://localhost:9000/webThree/configUrl

9 exception 捕获异常

exception.jsp

<%@ page errorPage="error.jsp"  %>

 <%

int a=10/0;

%>

 

error.jsp

<%@ page  isErrorPage="true"  %>

   <%=exception.getMessage()%> 

Cookie(饼干 )  用来将信息存储到客户端的浏览器中 

 案例: 登录之后,下次登录自动输入用户名. 

Cookie存信息到浏览器端

  Cookie cookie=new Cookie("loginname", value);

  //cookie对象返回给浏览器,浏览器就会将此cookie保存起来

  response.addCookie( cookie);

服务器端取Cookie值

 String loginname="";

 Cookie  [] cookies=request.getCookies();

 if(cookies!=null){

    for(Cookie cookie:cookies){

    if(cookie.getName().equals("loginname")){

        loginname=cookie.getValue();

        break;

    }

    }

 }


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值