JSP笔记

Content

  • 什么是JSP
  • JSP页面构成
  • JSP指令.
  • JSP动作
  • JSP内置对象

什么是JSP?

  • JSP=Java Server Page(服务器端脚本语言)

  • JSP通过将动态代码嵌入到静态的HTML中,从而产生动态的输出

JSP页面构成

  • HTML标记语言
  • jsp标记:指令标记,动作标记
  • 注释
  • java代码,java表达式

java代码(脚本代码):完成业务处理,不能输出
<% Java代码 %>

<%
Date now = new Date();
String dateStr;
dateStr = String.format("%tY年%tm月%td日", now, now, now);
%>

java表达式
<%= 表达式 %>

圆周率是:<%=Math.PI %>

注释:
html注释 :用户查看源码可见

jsp注释 <%–注释内容–%>:被服务器端编译执行,不发送到客户端,用户不可见
java代码注释://单行注释

/*
多行注释
*/

JSP指令

page指令:定义整个页面的全局属性
  • 一个JSP页面可包含多个page指令
  • 设置的属性在JSP被服务器解析成Servlet时会转换为相应的Java程序代码
  • 语法格式:<%@ page 属性1=“” 属性2=“”%>
  • 常用属性:
    Model:
    <%@ page language=“java” pageEncoding=“utf-8” contentType=“text/html;charset=utf-8”%>

— 指定JSP页面使用的语言:
<%@ page language=“java” %>

— 导入Java类包:
<%@ page import=“java.util.*” %>

— 定义JSP页面的编码格式:
<%@ page pageEncoding=“utf-8”%>

— 设置JSP页面的MIME类型和字符编码:
<%@ page contentType=“text/html; charset=utf-8”%>

— 指定是否使用HTTP的session会话对象(默认值为true):
<%@ page session=“false”%>

— 设置out输出对象使用的缓冲区大小:
<%@ page buffer=“128kb”%>

      注:默认大小是8kb,切单位只能使用kb。建议程序开发人员使用8的倍数16、32、64、128等作为该属性的属性值

include指令:插入文件(Java代码,HTML代码,JSP页面)

<%@ include file=“validate.jsp” %>

taglib指令:引用标签库

<%@ taglib prefix=“tagPrefix” uri=“tagURI” %>
prefix:指定标签的前缀
uri:指定标签库文件的存放位置。

引用JSTL:

<%@ taglib prefix=“c” uri=“http://java.sun.com/jsp/jstl/core” %>

JSP动作

共有属性
  • id:动作元素的唯一标识。动作元素创建的id值可以通过PageContext来调用
  • scope:识别动作元素的生命周期。 属性值: page, request, session, application。
jsp:include

可以将另外一个文件的内容包含到当前JSP页面中。
被包含的文件内容可以是静态文本,也可以是动态代码。

<jsp:include page=“url” flush=“false|true” />

page:该属性用于指定被包含文件的相对路径。

flush:这是可选参数,它用于设置是否刷新缓冲区。默认值为false,如果设置为true,在当前页面输出使用了缓冲区的情况下,先刷新缓冲区,然后再执行包含工作。

jsp:forward

请求转发标签,该标签可以将当前页面的请求转发给其它Web资源
例如另一个JSP页面、HTML页面、Servlet等

<jsp:forward page=“url”>
<jsp:param value=”” name=””/>
<jsp:param value=”” name=””/>
<jsp:param value=”” name=””/>
</jsp:forward>

jsp:forward VS include

jsp:forward动作标签:动态包含,JSP运行时才引入文件,可传参数,速度较慢
include指令的区别:静态包含,翻译成class文件时就引入文件,速度快

JSP内置对象

request页面请求对象

描述:获取客户端的输入信息。

中文乱码处理:
request.setCharacterEncoding(“UTF-8”);

应用1:获取请求参数

设置一个超链接
< a href=“delete.jsp?id=1”>删除< /a>

在delete.jsp中接收参数
<%
request.getParameter(“id”);
%>

注意:
在通过问号“?”来指定请求参数时,参数值不需要使用单引号或双引号括起来,包括字符型的参数。
技巧:
在通过问号“?”来指定请求参数时,可以同时指定多个参数,各参数间使用与符号“&”分隔即可。

应用2:获取表单提交信息

getParameter() //获取到客户端通过表单或url请求参数发送过来的参数值
getParameterValues() //将同名的参数一次性读入String类型的数组中

<form action="show.jsp" method="post">
      <ul style="list-style: none; line-height: 30px">
            <li>输入用户姓名:<input type="text" name="name" /><br /></li>
            <li>选择性别:
                  <input name="sex" type="radio" value="男" />男
                  <input name="sex" type="radio" value="女" />女
            </li>
            <li>
                  选择密码提示问题:
                  <select name="question">
                        <option value="母亲生日">母亲生日</option>
                        <option value="宠物名称">宠物名称</option>
                        <option value="电脑配置">电脑配置</option>
                  </select>
            </li>
            <li>请输入问题答案:<input type="text" name="key" /></li>
            <li>
                  请选择个人爱好:
                  <div style="width: 400px">
                        <input name="like" type="checkbox" value="唱歌跳舞" />唱歌跳舞
                        <input name="like" type="checkbox" value="上网冲浪" />上网冲浪
                        <input name="like" type="checkbox" value="户外登山" />户外登山<br />
                        <input name="like" type="checkbox" value="体育运动" />体育运动
                        <input name="like" type="checkbox" value="读书看报" />读书看报
                        <input name="like" type="checkbox" value="欣赏电影" />欣赏电影
                  </div>
            </li>
            <li><input type="submit" value="提交" /></li>
      </ul>
</form>
<ul style="list-style:none; line-height:30px">
      <li>用户姓名:<%=(request.getParameter("name")%></li>
      <li>性别:<%=request.getParameter("sex") %></li>

        个人爱好:
      <% 
            String[] like =request.getParameterValues("like");
            for(int i =0;i<like.length;i++){
      %>
      <%= like[i].getBytes("utf-8")+"&nbsp;&nbsp;" %>
      <% }
      %>
      </li>
</ul>
在作用域中管理属性
<% 
      request.setAttribute("date",new Date());          //添加一个属性
%>
<ul style="line-height: 24px;">
      <li>获取date属性:<%=request.getAttribute("date") %></li>
      <%request.removeAttribute("date"); %>        <!-- 将属性删除 -->
      <li>删除后再获取date属性:<%=request.getAttribute("date") %></li>
</ul>
获取cookie

Standing -by

response客户端响应对象

页面重定向

response.sendRedirect(“www.baidu.com”);

设置输出缓冲

设置缓冲区的大小为32KB
response.setBufferSize(32);

关于缓冲区
服务器要输出到客户端的内容不会直接写到客户端,而是先写到一个输出缓冲区,
当满足以下三种情况之一,就会把缓冲区的内容写到客户端。

  • JSP页面的输出信息已经全部写入到了缓冲区。
  • 缓冲区已满。
  • 在JSP页面中,调用了response对象的flushbuffer()方法或out对象的flush()方法。
处理HTTP 文件头
  • 设置页面自动刷新(每隔10s自动刷新)
    <%
    response.setHeader(“refresh”,“10”);
    %>
  • 定时跳转(5s后自动跳转)
    <%
    response.setHeader(“refresh”,“5;URL=login.jsp”);
    %>

session会话对象

存储或读取客户相关的信息

session.setAttribute(“username”,“root”);

getAttribute()方法的返回值是Object类型

String user=(String)session.getAttribute(“username”); //强制类型转
String user1=session.getAttribute(“username”).toString(); //调用toString()方法

application 对象(应用程序初始化参数)

application对象保存所有应用程序中的公有数据。

它在服务器启动时自动创建,在服务器停止时销毁。

当application对象没有被销毁时,所有用户都可以共享该application对象。与session对象相比,application对象的生命周期更长,类似于系统的“全局变量”。

设置参数:

应用程序初始化参数在web.xml文件中进行设置,web.xml文件位于Web应用所在目录下的WEB-INF子目录中。在web.xml文件中通过标记配置应用程序初始化参数。例如,在web.xml文件中配置连接MySQL数据库所需的url参数,可以使用下面的代码:

   <context-param>
 <param-name>url</param-name>
  <param-value>jdbc:mysql://127.0.0.1:3306/db_database</param-value>
 </context-param>
 </web-app>

读取参数:

application.getInitParameter(“url”);

getAttributeNames()方法
该方法用于返回所有已定义的应用程序初始化参数名的枚举。

<%@ page import="java.util.*" %>
<%
Enumeration enema=application.getInitParameterNames();  //获取全部初始化参数
while(enema.hasMoreElements()){
      String name=(String)enema.nextElement();                        //获取参数名
      String value=application.getInitParameter(name);         //获取参数值
      out.println(name+":");                                      //输出参数名
      out.println(value);                                              //输出参数值
}
%>

管理应用程序环境属性

getAttributeNames():获得所有application对象使用的属性名。

getAttribute(String name):从application对象中获取指定对象名。

setAttribute(String key,Object obj):使用指定名称和指定对象在application对象中进行关联。

removeAttribute(String name):从application对象中去掉指定名称的属性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值