servlet与jsp小结
Posted 森文的技能学习之旅
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了servlet与jsp小结相关的知识,希望对你有一定的参考价值。
(一)Servlet
1、部署servlet容器
1)安装jdk,配置java_home<根路径>;解压tomcat
2)在path下加入tomcat脚本路径<任意目录下打开>,配置catalina_home<根路径>
3) 通过tomcat配置文件下的server.xml修改端口号<port="8080">
4)通过conf下tomcat-users.xml 修改tomcat manager 用户名密码
<tomcat-users>
<role rolename="manager-gui"/>
<user username="tomcat" password="s3cret" roles="manager-gui"/>
</tomcat-users>
2、java web 目录结构
- WebContent
- WEB-INF
- classes
- lib
- web.xml
- jsp 页面
- html 页面
- 图片 ...
1) eclipse修改编译文件默认输出目录,设为classes<build path -->配置build path-->source>
2)在tomcat的conf目录下依次创建 Catalina/localhost/test.xml<配置任意目录下的web应用程序>
<Context
Path="/wuyong"
docBase="C:\\Users\\Administrator\\workspace\\test_3\\WebContent"
reloadable="true"/>
!path名作为manager下的配置名
3、使用eclipse开发java web项目
1)定制new透视图<windows-->perspective-->customize perspective>
2) servlet容器管理servlet生命周期
加载:指定创建实例的顺序<load-on-startup>
构造器:创建servlet实例
init()
service()
destory()
4、ServletConfig接口对应的方法
getinitParameter();
getinitParameterName();
ServletName();
ServletContext();
1)获取当前WEB应用的某一个文件在服务器上的绝对路径,而非部署前的路径
getRealPath(String path);
2) 获取当前WEB应用的名称
getContextPaht();
作为一个电脑工作者就应该自己装配电脑,从而节省经济和提高开发效率。
5、ServletContext接口
设置初始化参数:<全局的>
<context-param>
<param-name>driver</param-name>
<param-value>com.mysql.jdbc.Driver</param-value>
<context-param>
设置servlet初始化参数:<局部的,servlet的load-on-startup之前>
<init-param>
<param-name>user</param-name>
<param-value>root</param-value>
</init-param>
<init-param>
<param-name>password</param-name>
<param-value>123456</param-value>
</init-param>
6、get请求与post请求
get请求数据添加在地址栏,数据量与url地址容纳量有关,一般4kb-7kb
post请求数据封装在form data,数据量无限制
7、service()
ServletRequest:封装了请求信息
1)获取请求参数
String getParameter(String name):根据请求参数名,返回一个参数值
String getParameterValues(String name):根据请求参数名,返回参数对应的字符串数组
Enumeration getParameterNames():返回参数对应的Enumeration对象
Map getParameterMap():返回键值对 key-->参数名 value-->参数值,String类型
2)获取请求url
3)获取请求方式
4) 若是get请求,获取url ?后的数据
5)获取Servlet的映射路径
6)和attribute相关的几个方法:
ServletResponse:封装了响应信息
1)*getWriter():返回PrintWriter 对象.调用该对象的print()方法,把print的参数打印到浏览器
2)设置响应类型:response.setContentType("application/msword")
3) void sendRedirect(String location):指定的重定向.(此方法为HttpServletResponse中定义)
8、servlet接口的实现类
GenericServlet<不常用>
HttpServlet<http协议定制的>
(二)JSP
1、jsp的定义:全称Java Server Pages,java服务器页面。其根本是一个简化的servlet设计。
2、jsp的九个隐含对象<没有声明就可以直接使用>
request
response
pageContext
session
application
config
out
page
exception<特殊:前提是设置了page标签的属性-->isErrorPage="true">
3、换行的2种方式
① %>
<br>
<%
② out.print("<br>");
4、作用域属性范围从小到大
pageContext,request,session,application
5、jsp语法
1)静态html内容称
2)jsp表达式 <%= %>
3) 脚本片段,java代码中圈套html代码的 java代码片段,多个脚本片段可以相互进行访问
4)jsp声明 <%! %>
5) jsp注释 <%-- --%> html注释<!-- -->
6、域对象的属性操作
域对象:
pageContext:属性的作用范围仅限于当前jsp页面
request:属性的作用范围仅限于同一个请求
session:属性的作用范围限于一次会话:浏览器打开直到关闭称之为一次会话<在此期间会话不失效>
application:属性作用范围限于当前WEB应用.只要在一处设置属性,在其他各处的jsp或servlet都可 以获取,服务器关闭或重启消失
7、请求重定向与请求转发
servlet类的创建,可选择映射和方法
请求转发与重定向:
1)本质区别:请求的转发只发出一个请求,而重定向则发出了两次请求
具体:
①请求的转发:地址栏是初次发出请求的地址
请求的重定向:地址栏不再是初次发出的请求地址,地址栏为最后响应的那个地址
②请求的转发:在最终的Servlet中,request对象和中转的request对象是同一个
请求的重定向:在最终的Servlet中,request对象和中转的request对象不是同一个对象
③请求的转发:只能转发给当前WEB应用的资源
请求的重定向:可以重定向到任何资源
④请求的转发:/ 代表的是当前 WEB 应用的根目录
请求的重定向:/ 代表的是当前 WEB 站点的根目录
requestDispatcher
requestRediect
8、jsp 2.0的三种指令page,include,taglib
page指令:
1)全局任意位置都全局有效,建议放在起始位置
2)page指令的 常用 属性:
①import属性:指定当前jsp页面对应的Servlet要导入的类
<%@ page import="com.ants.test.Test"%>
②session属性:取值为true 或false,指定当前页面的session隐藏变量是否可用
<%@ page session="false"%>
③errorPage 和 isErrorPage
> errorPage 指定若当前页面出错实际响应的页面,/ 代表当前 WEB 应用根目录,请求方 式是 请求转发
<%@ page errorPage="/error.jsp"%>
> isErrorPage 指定当前页面是否为错误处理页面,属性值为 true 则可以使用隐含对象 exception,不建议能够直接访问该页面,属性值默认为 false
> WEB-INF下的文件为隐私文件不能通过url直接访问,但可以通过请求转发访问
<%@ page errorPage="/WEB-INF/error.jsp"%>
④contentType属性:指定当前页面的响应类型,实际调用的是response.setContentType ("text/html;charset=UTF-8")
⑤pageEncoding属性:指定当前jsp页面的字符编码.通常和contentType中的charset一致
⑥isELIgnored属性:指定当前页面是否可以使用EL表达式,通常取值为true
include指令:将其他文件静态引入servlet源文件中,其中file属性用于指定被引用文件的相对路径,若以/
开头则是 WEB 应用的根目录
<%@ include file="registerURL"%>
9、jsp标签
标签名以小写jsp作为前缀,如<jsp:include>、<jsp:forward>
<jsp:include> 将其他文件资源 动态引入,生成2个servlet源文件
<jsp:include page="b.jsp"></jsp:include>
<jsp:forward>
<jsp:forward page="/include/b.jsp"></jsp:forward>
10、中文乱码问题
1)jsp、开发工具、浏览器的编码格式改为utf-8
2)若get请求-->servlet容器中conf/server.xml 修改编码格式
若post请求-->servlet接口中的service()中添加<前提extends HttpServlet实现类>
request.setCharacterEncoding("utf-8")
response.setCharacterEncoding("utf-8")
11、MVC设计模式
以上是关于servlet与jsp小结的主要内容,如果未能解决你的问题,请参考以下文章