基础
get与post请求方式的区别
get与post请求方式的区别:
a. get方式 在地址栏显示请求信息(地址栏能够容纳的信息有限,4-5kb );post不会显示
b.文件上传操作,必须是post
推荐使用post
JSP九大内置对象
内置对象 | 作用 |
---|---|
out | 输出对象,向客户端输出内容 |
request | 请求对象;存储“客户端向服务端发送的请求信息” |
response | 响应对象 |
session | 会话,存在于服务端 |
pageContext | JSP页面容器 |
config | 配置对象(服务器配置信息) |
page | 当前JSP页面对象(相当于Java中的this) |
exception | 异常对象 |
对象 | 方法 | 返回类型 | 作用 |
---|---|---|---|
request | getParamenter(String name) | String | 根据请求的字段名(key)(input标签的name属性值),返回字段值(value)(input标签的value值) |
request | gtParameterValues(String name) | String[] | 根据请求的字段名(key),返回多个字段值(value) |
request | setCharacterEncoding(“编码格式”) | void | 设置请求编码 |
request | getRequestDispatcher(“b.jsp”).forward(request,response) | void | 请求转发A–>b,jsp(不会导致数据丢失,地址不会改变,服务端内部转发) |
request | getServerContext(); | ServletContext | 获取项目的ServletContext对象 |
response | addCookie(Cookie cookie) | void | 服务端向客户准备cookie对象(还要把cookie转发给客户端(转发或者重定向)) |
response | sendRedirect(String location) | void | 重定向,页面跳转的一种方式(会导致数据丢失,地址会改变,服务端与客户端的两次转发) |
response | sendContentType(String type) | void | 设置服务端响应编码(设置服务端的contentType类型) |
session | getId() | String | 获取sessionID |
session | isNew() | boolean | 判断是否是第一次访问 |
session | invalidate() | void | 使session失效 |
session | setMaxInactiveInterval(秒) | void | 设置最大有效 非活动时间 |
session | getMaxInactiveInterval() | int | 获取最大有效 非活动时间 |
session | setAttribute(键,值) | void | 设置session内容 |
session | getAttribute(键) | object | 获取session内容 |
session | 获取session内容 | 删除一个session内容 | |
application | getContextPath() | String | 获取虚拟路径 |
application | getRealPath(String name) | String | 获取虚拟路径对应的绝对路径 |
四种范围对象(小—>大)
对象 | 范围 |
---|---|
pageContext | JSP页面容器 当前页面有效(页面跳转后无效) |
request | 请求对象 一次请求有效(请求转发有效,重定向无效(两次请求)) |
session | 会话对象 同一次会话有效(同一浏览器有效) |
application | 全局对象 全局有效(整个项目有效,切换浏览器有效)关闭服务、其他项目无效 |
以上四个对象共有的方法:
方法 | 返回类型 | 作用 |
---|---|---|
getAttribute(String name) | object | 根据属性名,获得属性值 |
setAttribute(String name,Object obj) | void | 设置属性值(新增,修改) |
removeAttribute(String name); | void | 根据属性名,删除对象 |
实现多个项目共享、重启仍然有效
JNDI
例:setAttribute(“a”,“b”);
//如果a对象之前不存在,则新建一个a对象
//如果a对象之前已存在,则将a 的值改为b
注:
1.以上4个范围对象,通过setAttribute()赋值,通过getAttribute()取值
2.以上范围对象,尽量使用最小的范围。因为对象的范围越大,造成的性能损害越大
Cookie对象
存在于客户端,不是内置对象
Cookie是由服务端产生的,再发送给客户端保存
相当于本地缓存的作用
作用:可以提高访问服务器的效率,但是安全性较差
Cookie:包含键值对 key=value
由javax.servlet.http.Cookie 类产生
构造方法
public Cookie(String name,String value)
服务端准备cookie
response.addCookie(Cookie cookie);
页面跳转(转发、重定向)
客户端获取cookie
request.getCookies();
方法 | 返回类型 | 作用 |
---|---|---|
getName() | String | 获取键name |
getValue() | String | 获取值value |
setMaxAge(int expiry) | void | 设置最大有效期(秒) |
注:不能直接获取某一个单独对象,只能一次性将全部的cookie拿到
除了自己设置的cookie对象外,还有一个name为JSESSIONID的cookie
JavaBean
例:LoginDao类,就称之为JavaBean
JavaBean的作用:
a.减轻jsp的复杂度
b.提高代码复用率
JavaBean定义:满足以下两点,就可以称之为JavaBean
a.public修饰的类,public 修饰的无参构造
b.所有属性(如果有)都是private,并且提供set/get(如果是Boolean,则get改为is)
使用层面:两大类
封装业务逻辑的JavaBean | 封装数据的JavaBean |
---|---|
LoginDao.java处理逻辑的 | 实体类,Student.java,Person.java处理数据的 |
对应于操作 一个封装数据的JavaBean | 对应于数据库的一张表 |
将JSP中的JDBC代码,封装到Login.java类中 | 例:Login login = new Login(uname,upwd); 即用Login对象 封装了2个数据(用户名和密码) |
来源:CSDN
作者:qq1205263469
链接:https://blog.csdn.net/qq1205263469/article/details/103458894