0、配置servlet的模板
1、找Jar文件:\Common\plugins (myeclipse.ini文件中查看)
  * com.genuitec.eclipse.wizards*.jar
2、找模板文件
  * templates目录/servlet.java

1、什么JSP
  * servlet:java编写的处理动态web的技术
    * 特点:Java代码中嵌套html代码
  * jsp
    * 特点:HTMl代码中嵌套java代码
  * %tomcat%/conf/web.xml --> <servlet-mapping><servlet-name>*.jsp
  * 目的:将页面数据处理与页面显示相分离

2、JSP是如何工作的
    * 继承关系
      * public final class demo_jsp extends org.apache.jasper.runtime.HttpJspBase
      * public abstract class HttpJspBase extends HttpServlet implements HttpJspPage
    * 总结:demo_jsp --> HttpJspBase --> HttpServlet
    * tomcat调用servlet引擎处理JSP页面
      * 位置: %tomcat%/conf/web.xml --> serlvet(*.jsp) --> org.apache.jasper.servlet.JspServlet
  * 在web context root 读取指定的文件
    */demo.jsp
  * 将读取的文件分析,生成相应的servlet文件,java源文件
    * demo_jsp.java
  * 目录:%tomcat%\work\引擎\主机\项目名\org\apache\jsp
  * 将生成的Java文件,编译成字节码文件
    * demo_jsp.class
  * 通知servlet引擎处理当前生产好的servlet

3、JSP语言
  * JSP指令:配置页面的信息,提供给JSP引擎生产java源文件
    * 格式:<%@ 指令 [attribute="value"]%>
    * 位置:建议放置带页面的头部
  * page指令
    * 格式:<%@ page ...%>
    * 属性配置:
      * pageEncoding:配置当前页面保存信息的编码
      * contentType:配置当前页面生成的servlet文件响应浏览器的编码
      * response.setContentType("text/html;charset=UTF-8");
      * 比较:
        * 仅有pageEncoding
          * 配置当前页面的编码
          * 配置生成servlet文件响应浏览器的编码
        * 仅有contentType
          * 配置当前页面的编码
          * 配置生成servlet文件响应浏览器的编码
        * 两个都有
          * pageEncoding仅设置当前页面的编码
          * contentType仅设置servlet文件响应浏览器的编码
  * import:引入当前JSP页面需要使用的Java类或接口的包路径
    * 可以重复引用
    * 多个之间可以使用逗号分隔
    * 导包最后一条可以输入多个分号
  * language:确定当前jsp页面使用的语言
    * 默认:java
  * info:确定当前页面的输出信息
  * session:确定当前页面是否可以使用session
    * 默认:ture
  * extends,确定当前jsp页面在生成servlet文件时,继承的父类
    * 扩展
    * 例如:page extends="java.lang.String"

  * isErrorPage:是否是错误页面
    * 默认值:false
    * 当设置成true,在当前页面将可以使用一个变量 exception
  * errorPage:确定错误页面
    * 当页面出现异常时,跳转的页面
    * / 指 context root
  * isThreadSafe:是否是线程安全
    * 默认值:true
    * 如果设置成false,在生成的java源码中添加implementsSingleThreadModel
  * isELIgnored:是否忽略EL表达式
    * 默认值:false
    * 如果设置true,将忽略EL表达式

  * buffer:当前servlet文件的缓存区大小
    * 默认值是8kb
  * autoFlush:是否自动刷新,当buffer缓存区被填写满后,会自动的刷新内容到浏览器

  * include指令
    * 静态包含:引入其他页面,将其他页面与当前页面合并成一个页面后,再显示给浏览器
  * taglib指令
    * java标签库
* JSP脚本元素
  * 声明标签
    * 格式:<%! Java方法或字段 %>
    * 此标签中的内容,在JSP引擎生产servlet文件时,将直接拷贝。放置在当前类
  * 表达式标签
    * 格式:<%= java表达式 %>
    * 例如:String str = "abc" + "def ";
    * 等于与 out.print( 表达式 );
    * 将表达式的结果输出到浏览器
  * 代码块标签:
    * 格式:<% java代码片段 %>
    * 任何方法里面的内容
    * 将标签内容完成拷贝,放置到service方法体中
* 总结:
    * 脚本元素不能嵌套使用
    * 不能在html注释中使用


* JSP注释
  * 格式:<%-- 注释内容 --%>
  * HTML注释:<!-- 注释内容 -->
  * Java注释:
    * 行注释://注释内容
    * 块注释:/* 注释内容 */
    * 标准JavaDoc注释:/** 注释内容 */
  * 总结
    * HTML源码 Java源码 JSP源码
    html 有 有
    java 无 有
    jsp 无 无
    * 结论:JSP注释,仅在源码级别有效

* JSP的内置对象

* 个数:9

* 在JSP页面中隐藏的Java对象
* 1、Object page : 当前类的引用
* 作用范围:当前页面
* 2、HttpServletRequest request
* 作用范围:一次请求(可能涉及多个JSP或Servlet,转发)
* 3、HttpSession session
* 作用范围:一个会话
* 4、ServletContext application
* 作用范围:整个web相应
* 5、ServletConfig config
* 当前servlet的配置
* 可以单独配置,把JSP文件当成servlet使用
* 配置文件的位置:WebRoot/web.xml
* 内容
<!-- 注册jsp -->
<servlet>
<servlet-name>jspfile</servlet-name>
<jsp-file>/obj.jsp</jsp-file>
<init-param>
<param-name>user</param-name>
<param-value>lt</param-value>
</init-param>
</servlet>

<!-- 映射 -->
<servlet-mapping>
<servlet-name>jspfile</servlet-name>
<url-pattern>/jsp</url-pattern>
</servlet-mapping>
* 注意:
1、使用tomcat,servlet引擎
http://localhost:8080/day08/obj.jsp
2、自定义访问路径
http://localhost:8080/day08/jsp
* 6、HttpServletResponse response
* 响应
* 注意:使用的Writer,所以getOutputStream会出现异常

* 7、Throwable exception
* 错误页面中获得异常信息
* 8、JspWriter out
* public class JspWriterImpl extends JspWriter {
* abstract public class JspWriter extends java.io.Writer {

* public class PrintWriter extends Writer {

* 9、PageContext pageContext
* 当前JSP页面的上下文对象,管理当前JSP页面的
* 具有其他隐式对象的引用
* 设置属性的值
* 在不同的作用域设置属性值
pageContext.setAttribute("user","liang_page",PageContext.PAGE_SCOPE);
pageContext.setAttribute("user","liang_request",PageContext.REQUEST_SCOPE);
pageContext.setAttribute("user","liang_session",PageContext.SESSION_SCOPE);
pageContext.setAttribute("user","liang_application",PageContext.APPLICATION_SCOPE);
* 从不同的作用域获得属性值
<%=pageContext.getAttribute("user",PageContext.PAGE_SCOPE) %><br/>
<%=pageContext.getAttribute("user",PageContext.REQUEST_SCOPE) %><br/>
<%=pageContext.getAttribute("user",PageContext.SESSION_SCOPE) %><br/>
<%=pageContext.getAttribute("user",PageContext.APPLICATION_SCOPE) %><br/>
* 从不同的作用域,依次查询需要的属性值
* <%=pageContext.findAttribute("user") %>
* page、request、session、application

JSP小记的更多相关文章

  1. jspf、jsp小记

    jsp页面:

  2. jsp 小记

    1. select 默认选中: <select name="skills" multiple="true"> <option value=&q ...

  3. JSP+Servlet+DAO+Javabean模式小记-20171029

    1.Servlet的doPost方法使用request.getParameter()接收网页传送的form表单数据时,必须使用name属性,而不能使用id. 2.这是最简单的MVC模式,其中M(mod ...

  4. jsp学习小记

  5. JSP session过期时间(小记)

    以下情况,Session结束生命周期,Servlet容器将Session所占资源释放:1.客户端关闭浏览器2.Session过期3.服务器端调用了HttpSession的invalidate()方法. ...

  6. JSP乱码(小记)

    Post提交乱码: 设置请求的编码方式: request.setCharacterEncoding("utf-8"); 设置响应的编码方式: response.setCharact ...

  7. myeclipse学习总结一(在MyEclipse中设置生成jsp页面时默认编码为utf-8编码)

    1.每次我们在MyEclispe中创建Jsp页面,生成的Jsp页面的默认编码是"ISO-8859-1".在这种情况下,当我们在页面中编写的内容存在中文的时候,就无法进行保存.如下图 ...

  8. jsp前端实现分页代码

    前端需要订一page类包装,其参数为 private Integer pageSize=10; //每页记录条数=10 private Integer totalCount; //总记录条数 priv ...

  9. jsp中出现onclick函数提示Cannot return from outside a function or method

    在使用Myeclipse10部署完项目后,原先不出错的项目,会有红色的叉叉,JSP页面会提示onclick函数错误 Cannot return from outside a function or m ...

随机推荐

  1. 弱校ACM奋斗史

    看到这篇文章, 已是大三了, 我的ACM之路也即将走向终点, 感慨自己还是不够努力, 给自己的大学留下诸多遗憾. 和他们相比, 我差的就是太远了, 值得高兴的是我们学校有一个好老师-----赵靖老师, ...

  2. vue 组件开发

     作者QQ:1095737364    QQ群:123300273     欢迎加入! 1.新建路由:router-->index.js,修改成下面的代码 import Vue from 'vu ...

  3. HTML 基本标签01

    ↑ !DOCTYPE 文档类型声明:让浏览器,按html5的标准对代码进行解释与执行 文档类型声明必不可少,而且,必须放在文档最上方 如果不写文档类型声明,浏览器会默认按照兼容模式运行,可能会出现不明 ...

  4. Json 查看Json的插件

    # 写写写写写,每个人有每个人写东西的方式,这些都是好的方式.需要感谢的人有几个,对我的成长有启发,所以我也会把能够想到.接触到的东西告诉team里面的人.新人,然后这些人又可以把这些东西传递给下一波 ...

  5. C#多线程的用法4-线程间的协作lock快捷方式

    线程间协作还可通过lock(加锁)方式进行,lock属于C#的Monitor语法糖(Monitor后续讲解).使用简单快捷,如下: /// <summary> /// 多线程协作-lock ...

  6. Big Data Solution in Azure: Azure Data Lake

    https://blogs.technet.microsoft.com/dataplatforminsider/2015/09/28/microsoft-expands-azure-data-lake ...

  7. 在配置wem.xml后,Tomcat遇到问题,启动失败的解决方法

    前两天在写程序时,碰到了Tomcat无法启动的问题,就是在配置完web.xml后.想必好多小伙伴都有遇到吧. 如图: 出现这个错误的原因是:在配置web.xml的时候出现了错误! 如图所示,没有修改这 ...

  8. jdbc电话本项目

    整体思路:在登陆之后才能查看自己的电话本,电话本中包含用户名,联系人名字,电话,性别,分类: 1.登陆注册页面--数据库User表,注册登陆使用 2.电话本的前段显示,用表格和表单, 3.创建存取的电 ...

  9. 关于Java String 类型转换时null的问题(转)

    关于Java String 类型转换时null的问题 开发中经常遇到从集合类List.Map中取出数据转换为String的问题,这里如果处理不好,经常会遇到空指针异常java.lang.NullPoi ...

  10. 基于tgp协议的套接字的 粘包解决

    客户端 import socket import struct import json phone = socket.socket(socket.AF_INET, socket.SOCK_STREAM ...