使用Eclipse快速开发JSP-编码问题。JSP页面元素。request对象
1、使用Eclipse开发Web项目(JSP项目)tomacat
说明:JSP需要tomcat,所以先在EClipse里集成一下
集成流程:
之后配置JRE,建议按着视频吧。。太多了不想截图怕乱
2、在Eclipse中创建的Web项目:
浏览器可以直接访问WebContent中的文件
例如
http://127.0.0.1:8888/MyJspProject/index1.jsp
其中的index1.jsp就在WebContent目录中;
但是WEB-INF中的文件 无法通过客户端(浏览器)直接访问
只能通过请求转发来访问
注意:并不是任何的内部跳转都能访问WEB-IN(为了安全)
原因是 跳转有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的第二项
说明,现在eclipse和文件盘tomcat里的已经是两个东西了,可以认为是eclipse拷贝了一份使用,二者互不关联,但还是关联好,设置方法如下
5、统一字符集编码
a编码分类:
1设置jsp文件的编码(jsp文件中的pageEncoding属性):jsp->java
2设置浏览器读取jsp文件的编码(jsp文件中content属性)
一般将上述设置成一致的编码,推荐使用UTF-8
3文本编码:
i.将整个eclipse中的文件,统一设置(推荐)
ii.设置 某一个项目
iii.设置单独文件
6、
JSP的页面元素:HTML java代码(脚本Scriptlet)、指令、注释
a.脚本Scriptlet:
1, <%
局部变量、java语句
%>
2
<%!
全局变量、定义方法
%>
3
<% =输出表达式 %>
一般而言,修改web.xml、配置文件、java 需要重启tomcat
但是如果修改Jsp\html\css\js,不需要重启
注意:
out.println()不能回车,想要回车:"
"即out.print()和<%= %>可以直接解析html代码
b、指令
page指令
<%@ page… %>
language:jsp页面使用的脚本语言
import:导入类(java包之类的)
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注释 <%-- --%> 可以被客户通过浏览器查看源码所观察到
JSP九大内置对象(自带的,不需要new 也能使用的对象)
out:输出对象,向客户端输出
request:请求对象,存储“客户端向服务端发送的请求信息
request对象的常见方法:
String getParameter(String name):根据请求的字段名Key(input标签的name属性值),返回字段值Value(nput标签的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对象
示例:
注册
register.jsp
show.jsp
http://localhost:8888/MyJspProject/show.jsp?uname=ls&upwd=123&uage=28&uhobbies=%E7%AF%AE%E7%90%83
连接/文件?参数名1=参数值1&参数名2=参数值2 &参数名3 =参数值3
get提交方式: method=“get” 和 地址栏 、超链接() 请求方式默认都属于get提交方式
get和post请求方式的区别
a、get方式在地址栏显示请求信息(但是地址栏能够容纳的信息有限,4-5KB ;如果请求数据存在大文件,图片等 会出现地址栏无法容纳全部的数据而出错);post不会显示
b 文件上传操作,必须是post
推荐使用post