Jsp

JSP相关
①语法格式  <%声明变量%>
指令----<%@ name 属性1 = "属性值1" 属性2 = "属性值2" ... %>
JSP三大常用指令
page       针对当前页面进行设置
include    用于包含另一个页面
taglib     定义和访问自定义标签
<% page errorPage="错误处理页面"%>
<%@ include%>--删除多余<html,head,body>标签
<jsp:include page="url" />标签,效率较低
<jsp:forward page="url" />跳转
<jsp:param name="参数名" value="参数值" />
以键值对的形式传递参数数据,本身不能单独使用,做子标签
②JSP 9大内置对象
内置对象       类型
request            javax.servlet.http.HttpServletRequest
response         javax.servlet.http.HttpServletResponse
pageContext    javax.servlet.jsp.PageContext
session           javax.servlet.http.HttpSession
application      javax.servlet.jsp.ServletContext
out                  javax.servlet.jsp.JspWriter
config             javax.servlet.ServletConfig
page               java.lang.Object
exception       java.lang.Throwable
1、request
---getParameter(name);获得参数名为name参数值
   获取数据先做检查(非空等)
   request.setCharacterEncoding("utf-8");设置参数编码
---getParameterNames();获得所有参数的名称
   Enumeration<String> e=request.getParamterNames();
   while(e.hasMoreElements()){
         参数名=e.nextElement();  
         参数值=request.getParamter(名);}
---getParameterValues(name);所有参数值,如复选框
   String[] xx=request.**(name);
   for(String str:xx){print(str);}
---getParamterMap();获得所有参数封装的Map实例
   Map xx=request.**();
   String[] yy=(String[])xx.get(name);
   print(yy[0]);
---将xxx.jsp页面include到本页面中
   <%request.getRequestDispatcher("/xxx.jsp").include(request, response);%>
   将请求forward到xxx.jsp页面
   <%request.getRequestDispatcher("/xxx.jsp").forward(request, response);%>
---在request范围设置属性
   <%request.setAttribute("name", "admin");//没有关闭服务器,均能取得
   request.getRequestDispatcher("/second.jsp").forward(request, response);%>
   <body>
   取得request范围属性
   <%String strName =  (String) request.getAttribute("name");
    print("name属性值为" + strName);%>
2.session
  getId()                                             获得session的ID
  getCreationTime()                          session生成的时间
  getLashAccessedTime()                 最后通过session发送请求时间
  getMaxInactiveInterval()                  取得session生命周期
  session.setMaxInactiveInterval()     设置最大活动时间
  invalidate()                                      清空session内容(手动销毁)
  isNew                                              判断session是否为"新"的
  setAttribute("","")                             浏览器不关闭,均可取得
3.response
  response.sendRedirect("xxx.jsp")   客户端跳转,地址变
     可带参数("xx.jsp?username=xx&pwd=xx")
  response.setHeader("refresh", "x");    X秒后自动刷新
  response.setHeader("refresh", "x;url=xx.jsp");
--<meta http-equiv="Pragma" content="no-cache" />
  <meta http-equiv="Cache-Control" content="no-cache" />
  <meta http-equiv="Expires" content="0" />
4.Cookie
  Cookie c =new Cookie("Parameter","Value");
  c.setMaxAge( );         设置Cookie对象的生存期限
  c.setMaxAge(Integer.MAX_VALUE)          永久有效
  c.setMaxAge(0);             通过覆盖实现删除效果
  response.addCookie(c);    向客户端增加Cookie对象
--Cookie[] cookies = request.getCookies();获取所有Cookie
  for (Cookie c : cookies) {   遍历客户端上的每个Cookie
    if (c.getName().equals("username")) {      判断
          println(c.getValue());}}         输出
  Value中文=URLEncoder.encode("张三", "UTF-8");
  输出print(URLDecoder.decode(c.getValue(), "UTF-8"));
--存储sessionID
  String sessionid=session.getId();
  Cookie cookie=new Cookie("JSESSIONID",sessionid);
  cookie.setPath("/WebProject"); //此处写web项目名称
  cookie.setMaxAge(30*60);
  response.addCookie(cookie);
5.Application
  String path = application.getRealPath("/");


四大范围
page:通过pageContext对象表示当前JSP页面范围。代表与一个页面相关的对象和属性。
request:仅对本次请求有效,一旦JSP、Servlet将数据放入request中,该数据将可以被该本次请求的其他JSP、Servlet访问。
session:仅对一次会话有效,一旦JSP、Servlet将数据放入session中,该数据将可以被本次会话的其他所有的JSP、Servlet访问。

application:对于整个Web应用有效,一旦JSP、Servlet将数据放入application中,该数据将可以被该应用下其他所有的JSP、Servlet访问。

-----------------------------------EL表达式  ${expression}
applicationScope      ${.name}相当于getAttribute   
                                 ${param.name}相当于request.getParameter

sessionScope           ${empty expression}  null,无内容,长度0   检测是否为空,返回boolean

    //如果传值不为空,则复选框选中
   if(${!empty cm}){$(":checkbox[value='0']").prop("checked",true);} 

requestScope

pageScope


③JSTL标签库-jar包
<%@ taglib prefix="标签库使用时前缀" uri="标签库uri" %>
核心库   prefix="c"  uri="http://java.sun.com/jsp/jstl/core"   
XML处理          x        http://java.sun.com/jsp/jstl/xml
国际化处理     fmt        http://java.sun.com/jstl/fmt_rt
SQL标签库      sql        http://java.sun.com/jsp/jstl/sql
函数标签库      fn        http://java.sun.com/jsp/jstl/functions
1.<c:set>定义变量,设置属性
  <c:set var="变量名" value="变量值" scope="范围(默认page)" />
  <jsp:useBean id="id" class="class" />创造一个class类的id
  <c:set target="${ming}" property="shuxing" value="zhi" />给某变量属性赋值
2.<c.out>显示输出
  <c:out value="${a}" default="b" /> 显示a若没有显示b
3.<c:remove>删除
  <c:remove var="ming" scope="fanwei" />
4.<c:catch>捕获异常
5.<c:if><c:if test="条件">符合条件执行</if>
6.<c:choose><c:when><c:otherwise></c:choose>
7.<c:forEach>循环
  <c:forEach items="集合" var="存放每个元素" varStatus="s" >
     <c:out ${s.index索引,s.count第几个,s.first第一个true,s.last/boolean}>
8.<c:forTokens>用于在JSP中遍历一个字符串中所有由定义符号所分隔的成员
  <c:forTokens items="字符串" delims="用作分割的字符串" 其它同上>
9.<c:import>
    可以把其他静态或动态的文件包含到本身的JSP网页中。和JSP行为<jsp:include>最大的差别在于:<jsp:include>只能包含和自己在同一Web application下的文件;而<c:import>除了能够包含和自己的同一Web application的文件外。也可以包含不同Web application或者其他网站的文件。
10.<c:url>
    用来生成URL,其语法格式分为两种,一种是不带参数的,一种是带参数的
11.<c:redirect>
    可以从一个JSP页面跳转其他的页面上去,实现页面重定向功能。而且可以通过<c:param>标签传递参数
④项目自做basePage.jsp
<%@ page language="java" import="com.novaone.common.SystemParameter" pageEncoding="UTF-8"%>
<%@ page import="com.xx.xx" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>//核心标签库
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%@ taglib uri="/struts-tags" prefix="s"%>
<%
    String path = request.getContextPath();
    String basePath = request.getScheme() + "://" +request.getServerName() + ":"+ request.getServerPort() + path + "";
    //样式
    String StylePath = SystemParameter.getInstance().getValue(State.UI_STYLE);
    //项目名称
    String ObjectTitle = SystemParameter.getInstance().getValue(State.PROJECT_NAME);
%>
<c:set var="base" value="<%=basePath %>" />//根目录路径--var basePath ="${base}";
普通jsp
<%@ page contentType="text/html; charset=utf-8" language="java" %>
<%@ include file="/WEB-INF/jsp/basePage.jsp" %>















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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值