1.JSP标准指令:
<%@ 标准指令(属性 )%>
<%@ page %>
<%@ include %>
<%@ taglib %>

2.JSP程序代码元素:
<%! 变量或方法声明 %>
<% 程序代码 %>
<%= 表达式 %>

<%-- jsp被服务器翻译成servlet时,变量a被翻译成成员变量 --%>
<%! int a = 1; %>

<%-- jsp被服务器翻译成servlet时,变量b被翻译成局部变量 --%>
<% int b = 2; %>
<body>
<%-- java代码 --%>
<% for(int i=0;i<3;i++){%>

<% out.println(i*8); %>
<%= (i*8) %>
<%-- html代码 --%>
<br>

<% }%>

</body>

<!--这是HTML注解-->
<%--这是JSP注解--%>
<%//这是Java注解%>
<%/*这也是Java注解*/%>

3.JSP标准动作标签:
<jsp:forward page="file-url"|"<%=expression%>" />
<jsp:param name=" paramName" value="paramValue" />
</jsp:forward>

//先包含后处理
<%@ include file=“欲引入的文件 %>
//先处理后包含
<jsp:include page=“uri”>
<jsp:param name=“参数名” value=“值”/>
</jsp:include>

<jsp:param>必须同<jsp:include>和<jsp:forward>一起使用。

4.get方式提交和post方式提交的区别?
get方式提交的参数会被封装在请求头中,会出现在地址栏上,适合提交少量数据
post方式提交的参数会被封装在请求体中,不会出现在地址栏上,适合提交大量数据(例如上传文件必须使用post方式提交)

5.转发和重定向有什么区别?

request.getRequestDispatcher("地址").forward(request,response);或者<jsp:forward page=""/>
转发:一次请求,地址栏不变,服务器端跳转,执行到跳转语句后立刻跳转-之后代码不执行(这种情况仅限于使用标签转发)

response.sendRedirect("地址");
重定向:二次请求,地址栏改变,客户端跳转,作用是告诉浏览器按照所给路径重新给服务器发请求,所有代码执行完毕之后再跳转

(HttpServletRequest request, HttpServletResponse response)

6.JSP有以下九种内置对象,包括:
page,页面对象 java.lang.Object
request,请求对象 javax.servlet.http.HttpServletRequest
session,会话对象 javax.servlet.http.HttpSession
application,应用程序对象 javax.servlet.ServletContext
out,输出对象 javax.servlet.jsp.JspWriter
response,响应对象 javax.servlet.http.HttpServletResponse
pageContext,页面上下文对象 javax.servlet.jsp.PageContext
config,配置对象 javax.servlet.ServletConfig
exception,异常对象 java.lang.Throwable

存取范围从小到大依次是:page、request、session、application
page:一个页面共享数据
request:一次请求共享数据
session:一次会话共享数据
application:所有用户共享数据
application是所有用户共享的,任何用户都可以访问,而session对象则是每个用户私有的

1>四个域对象的生命周期
1) pageContext jsp执行时创建pageContext jsp页面结束时pageContext销毁
2) request 客户请求服务器时创建,请求结束request销毁
3) session 客户机请求服务器时,第一次getSession时,服务器创建session,session过xx多长时间没用了(或调用了session.invalidate方法),服务器销毁session
4) servletContext(application) web应用启动时就创建,web应用停止就销毁.一个web应用只有一个application对象.

2>什么情况下用什么域的问题
1)什么情况下用request域?如果在开发程序时,数据看完就没用了,那就应该把数据存在request域范围内。比如看新闻,新闻属于用户看完就没用的数据,这时servlet获得新闻数据,就应该存在request里面交给jsp显示。

2)什么情况下用session域?如果在开发程序时,数据看完了用户等一会儿还要用,那就应该把数据存在session域范围内.例如购物,购买的商品是用户的数据,这个数据产生之后,用户等一会儿结帐还要用,那么程序就应该把数据存在用户的session中。

3)什么情况下用application域?如果在开发程序,数据产生了,这个数据不仅等一会儿自己要用,还要给别人用,那就应该存在application域,例如web聊天室,用户的聊天数据,这个数据不仅用户等一会儿自己要看,还要给别人看。

7.Servlet监听器

8.学习使用JSTL(Jsp Standard Tag Library,jsp标准标签库)和EL表达式
1)核心标签库
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

<table>
<c:forEach items="${requestScope.aaa}" var="t" begin="0" end="2" step="1">
<tr><td>${t.titleid}</td><td>${t.titlename}</td></tr>
</c:forEach>
</table>

2)EL表达式
${requestScope.aaa} 相当于<%=request.getAttribute("aaa") %>
${sessionScope.aaa} 相当于<%=session.getAttribute("aaa") %>
${applicationScope.aaa} 相当于<%=application.getAttribute("aaa") %>
${param.aaa} 相当于<%=request.getParameter("aaa") %>
${paramValues.aaa} 相当于<%=request.getParameterValues("aaa") %>
${t.titleid} 相当于<%=t.getTitleid() %>

最新文章

  1. ASP.NET Core 中文文档 第四章 MVC(3.1)视图概述
  2. Java 引用分类:StrongReference、SoftReference、WeakReference、PhantomReference
  3. IP地址
  4. PHP防SQL注入不要再用addslashes和mysql_real_escape_string
  5. 减小Delphi XE5编译出来的程序体积
  6. 游戏服务器生成全局唯一ID的几种方法
  7. CSS之密码强度检测
  8. 进程与线程(7) 进程间通信之信号量 (java os)
  9. eclipse format的时候如何让@param后不换行
  10. thinkphp使用模块/控制器/操作访问时出现No input file specified.解决方式
  11. 福利 城市名的python list
  12. 学习笔记——模板模式Template
  13. 简单好用用js就可以保存文本文件到本地
  14. 201521123033《Java程序设计》第1周学习总结
  15. Ricker wavelet 简介
  16. cocos2dx 3.4 测试例 目录
  17. WINDOWS内核版本
  18. 删除数据库字段一样的row, 并增加唯一索引
  19. DistCp 集群之间数据拷贝工具
  20. MFC调试时可以,使用生产的exe时,显示未响应解决方案

热门文章

  1. GROUP BY关键字优化
  2. Linux系统性能测试工具(四)——CPU性能测试工具之super_pi、sysbench
  3. WPS专业版及序列号
  4. Spring Boot 支持https
  5. 四、ARM 异常处理
  6. Flater-Provide狀態管理
  7. Kafka---系统学习
  8. H5 FormData对象
  9. 【leetcode】1143. Longest Common Subsequence
  10. handy源码阅读(六):udp类