JavaWeb总结

1.动态网页开发基础

1.1动态网页和静态网页的区别

1.2B/S架构和C/S架构的区别

B/S架构C/S架构
软件安装浏览器需要专门的客户端应用
升级维护客户端需维护客户端需要单独维护和升级
平台相关与操作系统平台的关系最小化对客户端操作系统一般有限制
性能安全在响应速度和安全性上需要花费更多设计成果能充分发挥客户端处理能力,客户端响应更快

1.3Tomcat的安装配置

1.31Tomcat的下载教程:

https://blog.youkuaiyun.com/weixin_56236018/article/details/120067893?spm=1001.2014.3001.5501

1.4Maven的安装配置

1.41Maven的下载教程:

https://blog.youkuaiyun.com/weixin_56236018/article/details/120081776?spm=1001.2014.3001.5501

1.5 Idea集成Tomcat和maven搭建

1.51TomCat的搭建:

https://blog.youkuaiyun.com/weixin_56236018/article/details/120086227?spm=1001.2014.3001.5501

1.52Maven的搭建:

https://blog.youkuaiyun.com/weixin_56236018/article/details/120081776?spm=1001.2014.3001.5501

1.53Maven 4.0的搭建:(建议)

https://blog.youkuaiyun.com/weixin_56236018/article/details/120095786?spm=1001.2014.3001.5501

1.6JSP

1.61JSP页面组成

静态内容:

page指令

属性

描述
lauguage指定JSP页面使用的脚本语言,默认为:“Java”
import通过该属性引用脚本语言中使用到的类文件
contentType用于指定MIME类型和JSP页面回应时所采用的字符编码格式,默认为“text/html;charset=UTF-8”

 JSP脚本元素

在JSP页面中,将脚本(scriplet),表达式(expression),声明(declaration)统称为JSP脚本元素,用于在JSP页面种嵌入JAVA代码,实现页面的动态处理

脚本

语法:<% java代码%>

表达式

语法:<%= 变量名或表达式%>

展示:

 声明:

在编写JSP页面时,需要注释Java的变量或方法,需要声明来实现

语法:<%! 声明代码%>

 JSP的注释:

1.HTML注释方法:在客户端浏览器查看源码中可见

 

2.JSP注释标记:<%-- 注释内容--%>,在客户端浏览器中查看源代码不可见

 

3.在JSP脚本中使用注释:同Java,分为单行注释和多行注释

1.7常见错误排查

1.7.1 404错误:路径错误

1.路径错误
2.资源文件放在了WEB-INF文件夹下(该文件夹下的资源文件对外不可见)

1.7.2 500错误

 代码错误

2.JSP数据交互(一)

2.1JSP 9大内置对象

final javax . servlet . jsp . PageContext pageContext ; // 页面上下文
javax . servlet . http . HttpSession session = null ; // 会话
final javax . servlet . ServletContext application ; // 应用
final javax . servlet . ServletConfig config ; // 配置
javax . servlet . jsp . JspWriter out = null ; // 输出
final java . lang . Object page = this ; // 页面
final javax . servlet . http . HttpServletRequest request ; // 请求
final javax . servlet . http . HttpServletResponse response ; // 响应
exception // 异常
JSP 内置对象:不需要做任何声明就可以直接使用的对象。
request response session application out pageContext config page
exception

2.1.1 JSP依赖导入

 2.2 内置对象之out

 out对象用于向浏览器输出数据。eg:

 2.3 内置对象之request

2.3.1:从tomcat引入jar

 request 对象是 javax.servlet.httpServletRequest类型的对象,是最常用的JSP内置对象之一。 该对 象代表了客户端的请求信息,主要用于接受通过HTTP协议传送到服务器的数据。(包括头信息、 系统信息、请求方式以及请求参数等)。request对象的作用域为一次请求。

常用方法:

方法名称
说明
String getParameter(String name)
根据页面变淡组件名称获取页面提交数据
String[] getParameterValues(String name)
获取一组以相同名称命名的表单组件提交的数据
void setCharacterEncoding(Strin charset)
指定每个请求的编码,在调用 request.getParameter() 方法
之前进行设定,可以解决中文乱码问题
RequestDispatcher getRequestDispatcher(String path)
返回一个 javax.servlet.RequestDispatcher 对象,该对象的 forword() 方法用于转发请求
案例:获取用户注册信息
参考代码 :
regist.jsp

success.jsp

中文乱码问题解决:

post请求:

Tomcat对请求数据

治标不治本 : 将乱码字符串打散为 byte 数组,再通过 new String() 方法,使用指定的 UTF-8 字符 集把byte 数组构造为一个新的 String

默认采用ISO-8859-1字符集进行解码。

 治本:修改tomcat配置文件server.xml,添加URIEncoding="utf-8

 2.4 内置对象之response

2.4.1 response对象

response: 用户实现用户响应

response内置对象工作原理 

 response常用方法

方法名称说明
void addCookie(Cookie cookie)向客户端添加Cookie
void setContentType(String type)设置HTTP相应的cententType类型
void setCharacterEncoding(String charset)设置响应所采取的字符编码类型
void sendRedirect(String location)将请求重新定位到一个新的URL上(重定向)

2.4.2 转发和重定向

相同点:都可以进行页面跳转

不同点:

转发request.getRequestDispatch("路径").foward(request.response):可以携带请求参数,是一次性请求,转发的动作是服务器行为,地址栏是不会发生变化。

重定向response.sendRedirect("路径") 可以理解为可以理解为客户端发送了两次请求,第一次请求携带的数据丢失,地址栏会发生变化,是客户端行为。若需要传递参数,需要显示在路径后拼接参数

转发和重定向登录课堂演示:登陆成功转发成功页面,失败重定向到登录页面。

2.5 JSP内置对象session

2.5.1 session对象

浏览器和Web服务器之间是使用HTTP协议进行通信的,HTTP协议是一种基于请求/响应模式的无状态的访问协议。“无状态”就是指每一个HTTP请求都是独立的。服务器不会保存以往的请求和会话记录。因此当一个客户端发送请求到Web服务器时,无论其是否是第一次来访,服务器都会把它当做第一次来对待。

session:会话,指在一段时间内,一个用户与Web服务器的一串相关的交互过程,他可以包含浏览器与服务器之间的多次请求、响应过程。使用session可以保存当前每个用户的会话状态信息,一个用户对应一个信息。  

每个session对象都与一个浏览器窗口对应 ,重新开启一个浏览器窗口,可以重新创建一个session对象(不同版本浏览器可能有所差别)。  

通过超链接打开的新窗口,新窗口的session与其父窗口的session相同。  

浏览器关闭时,会话失效 

方法名称说明
String getId()获取sessionid
void setMaxInactiveInterval(int interval)设置session过期时间,单位为秒
int getMaxInactiveInterval()获取session过期时间,单位为秒
void invalidate()设置session对象失效
void setAttribute(String key,Object value)以key/value的形式将对象保存到session中
Object getAttribute(String key)通过key获取session中保存的对象
void removeAttribute(String key)从session中删除指定key对应的对象

2.5.2 使用session对象实现权限控制

访问控制流程

2.5.3会话的失效

会话超市 

三种方法:

1.通过session.setMaxInactiveInterval()方法设值,单位为秒

2.在项目的web.xml中设置,单位为分钟

<session-config>
  <session-timeout>10</session-timeout>
</session-config> 

3.在Tomcat服务器设置,/conf/web.xml中找到<session-config>元素,其中<session-timeout>元素中的30就是默认时间,单位是分钟,可以修改其值

手动设置会话失效

调用session.invalidate()方法,主要应用于用户注销的场合,该会话失效

若只想清空会话中绑定的某个数据对象,可以调用session.removeAttribute(String key)方法,将指定的对象从会话中清除,会话依然有效。  

2.5.4 关于session的一点理解

session内置对象:作用域:一次会话,也就是说从浏览器打开到关闭。

session作用:存数据

为什么不用request存放数据,而用session呢?

答:request的作用域是一次请求。例如,先访问a.jsp,再访问b.jsp,这是两次请求,request里的数据不能共享,此时用session 

能解决数据不能共享的问题。只要在某个页面存放了session数据,a.jsp和b.jsp都可以拿到. 

 不同的浏览器之间session不能共享

2.6 include指令

 JSP提供了文件引用指令include。我们可以将一些可以重用的内容写入一个单独的文件中,然后通过include指令引用改文件,缓解代码冗余的问题,并方便代码的修改。

3. JSP数据交互(二)

3.1 JSP内置对象application

3.1.1 application对象

application对象类似于系统的“全局变量”,用于同一个应用内的所有用户之间的数据共享。

常用方法:

方法名称说明
void setAttribute(String key,Object value)以key/value的形式将对象存储到application中
Object getAttribute(String key)通过key获取application中存储的对象
String getRealPath(String path)返回相对路径的真实路径

JSP常用内置对象  

内置对象名称说明
out对象用于向客户端输出数据
request对象主要用于处理客户端请求的数据信息
response对象用于响应客户端请求并向客户端输出信息
session对象用于记录会话状态的相关信息
application对象类似于全局变量,用于实现web应用中的资源共享

3.1.2 JSP的其他内置对象(了解):

pageContext:提供了在JSP运行时访问和其相关的环境信息的能力。通过pageContext对象可以访问和当前JSP页面相关联的所有作用域(当前页作用域),以及一些页面属性

  • 常用方法:  
  • ServletRequest getRequest():获得request对象
  • ServletResponse getResponse():获得response对象  
  • HttpSession getSession:获得session对象  
  • JspWriter getOut():获得out对象  
  • void setAttribute():保存属性  
  • Object getAttribute():获得属性  
  • void include():请求指定的资源,并将目标资源的响应结果包含在调用页面的响应中  

 page:表示当前页面,类似于Java中的this。在JSP页面中,很少使用page对象

config:用于存放JSP编译后的初始数据。与page对象一样,在JSP页面中很少使用

exception:表示JSP页面运行时产生的异常和错误信息,该对象只有在错误页面(page指令中设定isErrorPage为true的页面)中才能够使用 

3.2对象的作用域

在JSP中,提供了四种作用域,分别是page作用域、request作用域、session作用域和application作用域

3.2.1 page作用域

page作用域指单一JSP页面的范围,page作用域内的对象只能在创建该对象的页面中访问。page作用域可以使用pageContext对象的setAttribute()和getAttribute()方法进行访问。page作用域在客户端每次请求jsp页面时创建,在服务器发送响应或请求转发到其他页面或资源后失效。

3.2.2 request作用域

request作用域:一次请求,与客户端的请求绑定在一起。其作用域范围比page大,可以通过调用request对象的setAttribute()和getAttribute()方法进行访问。request作用域在页面转发中同样有效,通过调用RequestDispatcher的forward()方法进行转发,或调用其include()方法将页面包含,都可以共享request作用域。

每次新请求都会创建一个新的request作用域,请求结束时该作用域失效。

3.2.3 session作用域

session作用域:一次会话,即浏览器打开到关闭。在会话有效期内,只要将数据绑定到session作用域中,则该数据可以被本次会话中的其他页面所访问。可以通过session.setAttribute() 和session.getAttribute()方法进行访问其作用域。

3.2.4 application作用域

application作用域:整个web应用,即从tomcat启动到停止,被该应用下的所有用户共享。通过application.setAttribute() 和application.getAttribute()方法进行访问

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值