态文本(html,jsp),在JSP页面被转化成servlet之前和它融和到一起.
引入执行页面或servlet所生成的应答文本.
另外在两种用法中file和page属性都被解释为一个相对的URI.如果它以斜杠开头,那么它就是一个环境相关的路径.将根据赋给应用程序的URI的前缀进行解释,如果它不是以斜杠开头,那么就是页面相关的路径,就根据引入这个文件的页面所在的路径进行解释.更多有关URL是如何解释的请参考相关资料或书籍. }
注释:
<%- - jsp中的注释,客户端不可以看到
源代码 - -%>
JSP脚本中使用的注释:
<% //单行注释 %>
<% /*多行注释*/ %>
总结:只用html的注释在客户端是看得到的
JSP执行过程:(翻译-->编译-->执行)
WEB容器处理JSP文件请求需要经过3个阶段:
1、翻译阶段:JSP文件会被WEB容器中的JSP引擎转换成JAVA源码
\Tomcat6.0\work\Catalina\localhost\hello\org\apache\jsp\xxx.java
2、编译阶段:
Java源码会被编译成可执行的字节码.class
3、执行阶段:容器接受了客户端的请求后,执行编译成字节码的
JSP文件;处理请求后,容器把生成的页面反馈给用户端进行显示
第一次请求之后,WEB容器可以重用已经编译好的字节码文件。就不用再翻译、编译。
注意:如果对JSP文件进行了修改,WEB容器会重新对JSP文件进行翻译和编译。
传值方式:
方
式1:
xx.jsp String s=request.getParameter("a");
String d=request.getParameter("b");
方式2:
方式3:
form表单
JSP的内置对象:
JSP 内置对象是 Web 容器创建的一组对象
JSP 内置对象是可以直接在JSP页面使用的对象 ,无需使用“new”获取实例
JSP 内置对象的名称是 JSP 的保留字
九大内置对象:
out==============>JspWriter 向客户端输出数据,字节流
pageContext=========>PageContext 代表jsp页面的上下文
request============>HttpServletRequest 接受客户端的请求
response===========>HttpServletResponse 响应
session============>HttpSession 用于保存用户的信息,跟踪用户的行为
application========>ServletContext 多个用户共享该对象,可以做计数器 this.getServletContext().setAttribute(name,value);
--------------------------------------------------------------------------------
config============>ServletConfig 代表jsp对应的servlet的配置,可以得到web.xml中的参数
page=============>Object 代表jsp这个实例本身(使用较少)
exception==========>Throwable 代表运行时的一个异常
out对象用于向客户端输出数据
out对象常用方法:
print():在页面中打印出字符串信息<% out.print("hello world"); %>
out.println()与<%= %> 区别?
发现使用表达式输出(<%=%>)明显要比使用out.println()输出更好。所以在JSP的开发页面中绝 对不能出现任何的out.println()语句。
request对象主要用于处理客户端请求,方法有:
String getParameter(String name) 根据页面表单组件名称获取页面提交数据
String[ ] getParameterValues (String name) 获取一个页面表单组件对应多个值时的用户的请求数据
void setCharacterEncoding (String charset) 指定每个请求的编码 在调用request.getParameter()之前进行设定,可以解决中文乱码
问题 request.getRequestDispatcher(String path) 返回一个javax.servlet.RequestDispatcher对象,该对象的forward方法用于转发请求
request.setAttribute("key",value);
Object request.getAttribute("key");
get: URL 不安全
localhost:8080/webLesson