【Java web】JSP基础学习篇(随笔)

  通过不断面试和笔试,我逐渐发现基础的重要性,万丈高楼平地起,我又重新回来学习一下JSP+servlet基础了,很多基础没弄明白,后面框架就一脸蒙蔽,只能死记硬背。

什么是jsp?

其实本质就是html嵌套java代码。是servlet的拓展。

域名解析流程:

:1.先从本地查找->从万维网或其他查找(根域名)->返回一个小区域域名->重复返回缩小范围的域名并且访问->最终找到。详情见

https://blog.csdn.net/yangfanacc/article/details/42099913

get方法和post方法的区别

首先get和post都是http与服务器交互的方式。

a.   get方式 在地址栏显示 请求信息  (但是地址栏能够容纳的 信息有限,4-5KB;post不会显示
b.   文件上传操作,必须是post

c.get请求会被浏览器主动cache,而post不会,除非手动设置。

d.get请求只能进行url编码,而post支持多种编码方式。

e.get请求参数会被完整保留在浏览器历史记录里,而post中的参数不会被保留。

f.get只接受ASCII字符的参数的数据类型,而post没有限制

g.get效率更高,因此比post更加常用。

下文用非常通俗易懂的方式解释了两种方法的区别,很有意思 https://www.cnblogs.com/logsharing/p/8448446.html

JSP的九大内置对象

内置对象名          类型
request           HttpServletRequest
response       HttpServletResponse
config            ServletConfig
application    ServletContext
session          HttpSession
exception      Throwable
page              Object(this)
out                  JspWriter
pageContext    PageContext 
 

页面跳转的两种方式:

1.response重定向response.sendRedirect("xxx.jsp");

2.request页面跳转request.getRequestDispacher("xxx.jsp").forward(request,response);

两者的区别
                                   请求转发            重定向

地址栏是否改变          不变                  改变

是否保留第一次           保留               不保留        --4种范围对象
请求时的数据

请求的次数                     1                       2

跳转发生的位置        服务端            客户端发出的第二次跳转

cookiesession的区别:

                           cookie                             session

保存位置:      客户端                              服务端

安全性:          较不安全                              较安全

保存的内容:  String                                 Object(getAttribute返回Object)

pageContext,request,session,appliation 四种范围对象

(小->大)
pageContext    JSP页面容器(page对象);  当前页面有效
request             请求对象                                       同一次请求有效
session            会话对象                                        同一次会话有效
appliation         全局对象                                       全局有效(整个项目有效)

以上4个对象共有的方法:
Object getAttribute(String name):根据属性名,或者属性值(注意是返回的是Object类型)
void setAttribute(String name,Object obj) :设置属性值(新增,修改)
    setAttribute("a","b") ;//如果a对象之前不存在,则新建一个a对象 ;
                 如果a之前已经存在,则将a的值改为b
void removeAttribute(String name):根据属性名,删除对象


a.pageContext 当前页面有效 (页面跳转后无效)

b.request   同一次请求有效;其他请求无效 (请求转发后有效;重定向后无效)

c.session  同一次会话有效  (无论怎么跳转,都有效;关闭/切换浏览器后无效 ; 从 登陆->退出 之间 全部有效)

d.application 全局变量;整个项目运行期间 都有效 (切换浏览器 仍然有效);关闭服务、其他项目 无效

->多个项目共享、重启后仍然有效 :JNDI

1.以上的4个范围对象,通过 setAttribute()赋值,通过getAttribute()取值;
2.以上范围对象,尽量使用最小的范围。因为 对象的范围越大,造成的性能损耗越大。

JavaBean

1.概念:

    就是一个Java类,其定义:满足以下两点 ,就可以称为JavaBean
    a.public 修饰的类  ,含public 无参构造
    b.所有属性(如果有) 都是private,并且提供set/get   (如果boolean 则get 可以替换成is)

2.作用:a.减轻的jsp复杂度  b.提高代码复用

3.种类:

使用层面,Java分为2大类:
a.封装业务逻辑的JavaBean (LoginDao.java封装了登录逻辑)                逻辑
    可以将jsp中的JDBC代码,封装到Login.java类中 (Login.java)

b.封装数据的JavaBean   (实体类,Student.java  Person.java  )        数据 
    对应于数据库中的一张表
    Login login = new Login(uname,upwd) ;//即用Login对象 封装了2个数据(用户名 和密码)

统一字符集编码

1.编码分类:

设置JSP文件的编码:jsp -> Java(翻译成Java文件时用的编码)

猜你喜欢

转载自blog.csdn.net/zzf_forgot/article/details/88833310
今日推荐