jsp执行流程:jsp- java(Servlet文件) -class
jsp- java(Servlet文件) -class
Jsp 和Servlet 可以相互转换
因为第一次访问,服务端将jsp翻译成java,再将java编译成class文件。因此比较慢;后续访问可以直接访问class,因此速度较快。
但是如果服务端修改了代码,则再次访问时会重新的翻译、编译。
eclipse中文版换为英文版——找到eclipse根目录下的eclipse.ini,打开,加入-Duser.language=en
eclipse没有server选项解决方案:找到Help->InstallNew Software->"Kepler" repository(http://download.eclipse.org/releases/kepler)
或者1、在eclipse下: Help -> Eclipse Marketplace
2、搜索:apache-tomcat,下载相关选项(两个,若仍显示仅有Tomcat8.0,则再次更新这两个选项)
资料:
1.使用Eclipse开发Web项目(JSP项目) tomcat
2. 在Eclipse中创建的Web项目:
浏览器可以直接访问 WebContent中的文件,
例如http://localhost:8888/MyJspProject/index1.jsp
其中的index1.jsp就在WebContent目录中;
但是WEB-INF中的文件 无法通过客户端(浏览器)直接访问,只能通过请求转发来访问
注意:并不是 任何的内部跳转都能访问WEB-INF;原因是 跳转有2种方式:请求转发 、重定向
3.配置tomcat运行时环境
jsp<->Servlet
a.将tomcat/lib中的servlet-api.jar加入项目的构建路径
b.右键项目->Build Path -> Add library ->Server Runtime
4.部署tomcat
在servers面板 新建一个 tomcat实例 , 再在该实例中 部署项目(右键-add)
之后运行
注意:一般建议 将eclipse中的tomcat与 本地tomcat的配置信息保持一致: 将eclipse中的tomcat设置为托管模式:【第一次】创建tomcat实例之后, 双击,选择Server Location的第二项
5.统一字符集编码
a.编码分类:
设置jsp文件的编码(jsp文件中的pageEncoding属性): jsp -> java
设置浏览器读取jsp文件的编码(jsp文件中content属性)
一般将上述设置成 一致的编码,推荐使用UTF-8
文本编码:
i.将整个eclipse中的文件 统一设置 (推荐)
ii.设置 某一个项目
iii.设置单独文件
6.
JSP的页面元素: HTML java代码(脚本Scriptlet)、指令、注释
a.脚本Scriptlet
i.
<%
局部变量、java语句
%>
ii.
<%!
全局变量、定义方法
%>
iii.
<%=输出表达式 %>
一般而言,修改web.xml、配置文件、java 需要重启tomcat服务
但是如果修改 Jsp\html\css\js ,不需要重启
注意,out.println()不能回车; 要想回车:“<br/>”,即out.print() <%= %> 可以直接解析html代码
b.指令
page指令
<%@ page ....%>
page指定的属性:
language:jsp页面使用的脚本语言
import:导入类
pageEncoding:jsp文件自身编码 jsp ->java
contentType:浏览器解析jsp的编码
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" import="java.util.Date" %>
c.注释
html注释<!-- --> ,可以被客户 通过浏览器查看源码 所观察到
java注释// /*...*/
jsp注释<%-- --%>
7.JSP九大内置对象(自带的,不需要new 也能使用的对象)
out:输出对象,向客户端输出内容
request:请求对象;存储“客户端向服务端发送的请求信息”
request对象的常见方法:
String getParameter(String name) :根据请求的字段名key (input标签的name属性值) ,返回字段值value (input标签的value属性值)
String[] getParameterValues(String name): 根据请求的字段名key ,返回多个字段值value (checkbox)
void setCharacterEncoding("编码格式utf-8") :设置post方式的请求编码 (tomcat7以前默认iso-8859-1,tomcat8以后改为了utf-8)
getRequestDispatcher("b.jsp").forward(request,response) ; :请求转发 的方式跳转页面 A - > B
ServletContext getServerContext():获取项目的ServletContext对象