1.常见状态码:
- 404:资源不存在
- 200:一切正常
- 403:权限不足
- 3xx: 重定向
- 500:服务器内部错误(代码有误)
2. jsp 在html中嵌套java代码
3. 虚拟路径
将web项目配置到webapps以外的目录
a.方式一
conf/server.xml中配置
host标签中配置
docBase 实际路径
-path 相对路径(绝对路径)虚拟路径
b.方式二
conf\Catalina\lacalhost中新建“项目名.xml”中新增一行:
4. 虚拟主机
www.test.com访问本机
a. conf /server.xml
b.C:\Windows\System32\drivers\etc\host
- 增加
- 127.0.0.1 www.test.com
5. jsp执行流程
第一次访问:jsp–>java(servlet文件)–>class
第二次访问:直接访问class文件
- 若代码修改,则重新编译
- jsp和servlet可以相互转换
第一次请求服务端,会有编译的过程,所以比较慢,第二次就不会了,若修改了服务端代码,则会继续编译
6. Eclipes 开发web项目(Jsp项目)tomcat
7. Eclipse中的Web项目:
- 浏览器可以直接访问WEBContent中的文件,但是WEB-INF中的文件 无法通过浏览器直接访问,只能通过请求转发实现。
- 注意:并不是任何的内部跳转都可以访问WEB-INF;原因是 跳转有两中方式:请求转发,重定向
8.配置tomcat运行环境
jsp<—>Servlet
- a.将tomact/lib中的servlet-api.jar放入项目中
- b.右键项目->Build Path->Add libatrty->Server Runtime
9.统一字符集编码
a.编码分类:
1.设置jsp文件编码(jsp文件中的pageEncoding属性): jsp->java
2.设置浏览器读取jsp文件编码(jsp文件中的content属性)
- 一般将上述设置一样,推荐用UTF-8
文本编码:
1.统一设置,整个eclipse文件
2.设置某一个项目文件
3.设置单独文件(右键->属性)
10.部署tomcat
在servers面板,新建一个tomcat实例,再在该实例中部署项目(右键-add)之后运行
-注意 :一般建议将tomcat中的配置信息与ecplise中的tomcat设置为托管模式
11.JSP的页面元素
HTML,java代码,指令,注释
a. 脚本 Scriptlet
- <%
局部变量,java变量
%> -
<%! 全局变量,定义方法 %>
-
<%=输出表达式 %>
-
<
注意
- 一般,修改web.xml,配置文件,java 需要重启动tomcat服务,如果修改jsp\html\css\js,不需要重启。
- out.println();不能回车
可以回车,可以直接解析html代码
b.指令
1.page指令
<%@ page %>
2.page指定的属性
- language:jsp页面使用的脚本语言
- import:导入类
pageENcoding:jsp jsp->java
contentType:浏览器解析的jsp编码
<%@ page language=“java” contentType="text/html; charset=ISO-8859-1"pageEncoding=“ISO-8859-1” import= “java.util.Date”%>
c.注释
1.html注释
可以通过客户通过浏览器查看源码所观察到
2.java注释// /**/
3.jsp注释<%-- --%>
12.JSP九大内置对象(自带的,不需要new 也能使用对象)
1.out:向客户端输出,输出对象;
2.pageContext:
3.request:请求对象;存储“客户端向服务端发送的请求信息”
- requset对象的常用方法:
1.String getPartameter(String name):根据请求的字段名(input标签的name的属性值),返回字段值value(input标签的value属性)
2.String[] getPartameterValues(String name):根据请求的字段名,返回多个字段值value(checkbox)
3.void setCharacterEncoding(“编码格式utf-8”):设置请求编码(tomcat7以前默认iso-8859-1,tomcat8以后改为utf-8)
4.getRequsetDispatcher(“b.jsp”).forward(request,reponse); :请求转发的方法跳转页面 A->B
5.getServerContext():获取项目的ServerContext对象
示例:
1.注册
regidter.jsp,show.jsp
http://localhost:8080/MyJspProject/show.jsp?uname=17734972115&upwd=dfs&uage=12&uhobbies=%E8%B6%B3%E7%90%83&uhobbies=%E7%AF%AE%E7%90%83&uhobbies=%E4%B9%92%E4%B9%93%E7%90%83
get提交方式:method="get"和地址栏提交方式都属于get提交,甚至超链接方式。
post与get请求方式的区别
a.get方式在地址栏显示请求信息(地址栏可以容纳的信息有限,4-5kb);post不会显示
b.文件上传操作,必须是post(推荐使用post)
4.session(服务端)
5.Cookie(客户端,不是内置对象) :由服务端产生,再发送到客户端保存。
- 相当于本地缓存的作用:客户端(hello.MP4)->服务端(hello.MP4)
- 作用:可以提高服务端的效率,但是安全性较差。
- Cookie:key=value
- javax.servlet.http.Cookie
1.public Cookie(String name,String value)
2.String getName()获取name
3.String getValue()获取value
4.void setMaxAge(int exprity);最大有效期(秒) - 服务端发送给客户端
respones.addCookie(Cookie cookie)
页面跳转(转发,重定向)
客户端获取cookie:request.getCookies() - 注意
1.服务端增加cookie:response对象;客户端获取对象:request对象
2.获取全部cookies; - 发现
通过F12可以发现,除了自己设置的Cookoe对象外,还有一个name为JSESSIONID的cookie
6.appplicaton
7.config
8.page
9.exception
10.response:响应对象:
- response常用方法:
1.void sddCookie(Cookie cookie);服务器向客户端增加cookie对象
2.void sendRedirect(String location)throws IOException:页面跳转的一种方式(重定向)
3.void setContentType(String type):设置服务器响应编码(设置服务端的contentType类型)
示例:
1.登录
login.jsp ->check.jsp->success.jsp
请求转发和重定向的区别: 请求转发 重定向
1.地址是否改变 不变(check.jsp) 改变(success.jsp)
2.是否保留第一次请求
时的数据 保留 不保留 4种范围对象
3.请求次数 1 2
4.跳转发生的位置 服务端 客户端发出的第二次跳转
转发:
张三(客户端) -> 【服务窗口a(服务端) ->服务窗口B】
重定向:
张三(客户端)-> 【服务窗口a(服务端)->去找B】
张三(客户端)-> 【服务窗口b(服务端)】
统一请求的编码 repuset
get方式出现乱码,解决:
a.统一每一个变量的编码。(不推荐)
tomacat7(iso-8859-1)-------utf-8
new String(旧编码);
new String (name.getBytes(“iso-8859-1”),“utf-8”);
b.修改server.xml,一次性的更改tomcat默认提交get提交方式的编码
建议使用tomcat,统一更改… URIEncoding=“UTF-8”
//对post方式有用
;
new String (name.getBytes(“iso-8859-1”),“utf-8”);
b.修改server.xml,一次性的更改tomcat默认提交get提交方式的编码
建议使用tomcat,统一更改… URIEncoding=“UTF-8”
//对post方式有用
request.setCharacterEncoding(“utf-8”);