java web 部分

java web 部分

  1. http的请求过程
  2. http请求的GET与POST方式的区别
  3. 解释一下什么是servlet?
  4. 说一说servlet的生命周期?
  5. Servlet的基本架构
  6. servlet API 中forward()与redirect()的区别?
  7. Request对象的常用方法
  8. 简述HttpSession的作用、使用方法,可用代码说明
  9. jsp有哪些内置对象?作用分别是什么?分别有什么方法?
  10. 介绍在JSP中如何使用JavaBean?
  11. JSP的常用指令
  12. jsp的四种范围?
  13. jsp作用域由大到小
  14. 过滤器有哪些作用?
  15. 过滤器的用法?(对客户端的请求统一编码和对客户端进行认证)
  16. JSP和Servlet中的请求转发分别如何实现?
  17. JSP 和 Servlet 有哪些相同点和不同点,他们之间的联系是什么?
  18. 详细描述 MVC。
  19. 做项目中得到经验。

1、http的请求过程?

①:DNS解析域名得到IP地址
②:客户端与服务器建立连接(TCP三次握手)
③:客户端发起请求
④:服务器接收到请求根据端口号.路径等找到对应资源文件,响应源代码给客户端
⑤:客户端拿到请求到的数据(html页面的源代码),开始解析页面以及请求资源
⑥:客户端渲染页面
⑦:web服务器断开连接(四次挥手)

2、http请求的GET与POST方式的区别

Form 中的get和post方法,在数据传输过程中分别对应了http协议的GET和POST方法。二者主要区别如下:
	(1)Get是用来从服务器上获得数据,而Post是用来向服务器上传递数据;
	(2)Get将表单中数据按照variable=value的形式,添加到action所指向的URL后面,并且两者使用“?”连接,而各个变量之间使用“&”连接;Post是将表单中的数据放在form的数据体中,按照变量和值相对应的方式,传递到action所指向URL;
	(3)Get是不安全的,因为在传输过程,数据被放到请求的URL中;Post的所有操作对用户来说都是不可见的;
	(4)Get传输的数据量小,这主要是因为受URL长度限制;而Post可以传输大量的数据,所以在上传文件只能使用Post;
	(5)Get限制Form表单的数据集必须为ASCII字符,而Post支持整个ISO10646字符集;
	(6)Get是form的默认方法。

3、解释一下什么是servlet?

    Servlet 是一种独立于平台和协议的服务器端的 Java 技术,可以用来生成动态的 Web 页面。与传统的 CGI(计算机图形接口)和许多其他类似 CGI 技术相比,Servlet 具有更好的可移植性、更强大的功能,更少的投资,更高的效率,更好的安全性等特点。
	Servlet 是使用 Java Servlet 应用程序接口(API)及相关类和方法的 Java 程序。Java 语言能够实现的功能,Servlet 基本上都能实现(除了图形界面之外)。Servlet 主要用于处理客户端传来的 Http 请求,并返回一个响应。通常所说的 Servlet 就是指 HttpServlet,用于处理Http 请求,其能够处理的请求有 doGet()、doPost()、service()等方法。在开发 Servlet 时,可以直接继承javax.servlet.http.HttpServlet。Servlet 需要在web.xml 中进行描述,例如:映射执行 Servlet 的名字,配置 Servlet 类、初始化参数,进行安全配置、URL 映射和设置启动的优先权等。Servlet 不仅可以生成 HTML脚本输出,也可以生成二进制表单输出。
	Servlet 应用范围很广泛,我们现在用的很多流行的框架技术,其最基本的代码离不开
Servelt 的支持。比如我所熟悉的 SSH 框架,Spring 容器启动时,要在 web.xml 中装载 Spring容器的 ActionContext 类来初始化 Spring 的一些参数,如进行依赖注入、数据库表的映射、初始化系统的安全配置设置 read 等属性等一些相关操作。

4、说一说servlet的生命周期?

	servlet有良好的生存期的定义,包括加载和实例化、初始化、处理请求以及服务结束。这个生存期由javax.servlet.Servlet接口的init,service和destroy方法表达。
	servlet被服务器实例化后,容器运行其init方法,请求到达时运行其service方法,service方法自动派遣运行与请求对应的doXXX方法(doGet,doPost)等,当服务器决定将实例销毁的时候调用其destroy方法。
	web容器加载servlet,生命周期开始。通过调用servlet的init()方法进行servlet的初始化。通过调用service()方法实现,根据请求的不同调用不同的do***()方法。结束服务,web容器调用servlet的destroy()方法。

5、Servlet的基本架构

package test;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class ServletName extends HttpServlet {
	public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, 			IOException {
	}
	public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, 			IOException {
	}
}

6、servlet API 中forward()与redirect()的区别?

前者仅是容器中控制权的转向,在客户端浏览器地址栏中不会显示转向后的地址;后者则是完全的跳转,浏览器将会得到跳转的地址,并重新发送请求链接。这样,从浏览器的地址栏中可以看到跳转后的链接地址。所以,前者更加高效,在前者可以满足需要时,尽量用forward()方法,并且,这样也有助于隐藏实际的链接。在有些情况下,比如,需要跳转到一个其他服务器上的资源,则必须使用sendRedirect()方法。

7、Request对象的常用方法

setAttribute(String name,Object):设置名字为 name 的 request 的参数值
getAttribute(String name):返回由 name
getCookies():返回客户端的所有 Cookie 对象,结果是一个 Cookie 数组
getCharacterEncoding():返回请求中的字符编码方式
getParameter(String name):获得客户端传送给服务器端的有 name 指定的参数
getRequestURI():获取发出请求字符串的客户端地址
getRemoteAddr():获取客户端的 IP 地址
getRemoteHost():获取客户端的名字
getServerName():获取服务器的名字
getServletPath():获取客户端所请求的脚本文件的路径
getServerPort():获取服务器的端口号
removeAttribute(String name):删除请求中的一个属性

8、简述HttpSession的作用、使用方法,可用代码说明

HttpSession中可以跟踪并存储用户信息,把值设置到属性中,有2个方法:setAttribute()、getAttribute();
例如:在一个方法中用session.setAttribute("student",student);在一个session中设置一个属性名为student,值为一个名为student的对象。而后可在同一session范围内用getAttribute("student")取出该属性,得到student对象。

9、jsp有哪些内置对象?作用分别是什么?分别有什么方法?

jsp共有以下9个内置对象:
request   用户端请求,此请求会包含来自GET/POST请求的参数
response  网页传回用户端的回应
pageContext  网页的属性是在这里管理
session   与请求有关的会话期
application  servlet正在执行的内容
out 用来传送回应的输出
config servlet 的构架部件
page JSP网页本身
exception  针对错误网页,未捕捉的例外


request:表示 HttpServletRequest 对象。它包含了有关浏览器请求的信息,并且提供了几个用于获取 cookie, header, 和 session 数据的有用的方法。
response:表示 HttpServletResponse 对象,并提供了几个用于设置送回 浏览器的响应的方法(如 cookies,头信息等)
out:对象是 javax.jsp.JspWriter 的一个实例,并提供了几个方法使你能用于向浏览器回送输出结果。
pageContext:表示一个 javax.servlet.jsp.PageContext 对象。它是用于方便存取各种范围的名字空间、servlet 相关的对象的 API,并且包装了通用的 servlet 相关功能的方法。
session:表示一个请求的 javax.servlet.http.HttpSession 对象。Session 可以存贮用户的状态信息
applicaton :表示一个 javax.servle.ServletContext 对象。这有助于查找有关 servlet 引擎和servlet 环境的信息
config:表示一个 javax.servlet.ServletConfig 对象。该对象用于存取 servlet 实例的初始化参数。
page:表示从该页面产生的一个 servlet 实例

10、介绍在JSP中如何使用JavaBean?

在 JSP 中使用 JavaBean 常用的动作有:
<jsp:useBean />:用来创建和查找 bean 对象;
<jsp:setProperty />:用来设置 bean 的属性,即调用其 setXxx()方法;
<jsp:getProperty />:用来获得 bean 的属性,即调用其 getXxx()方法

11、JSP的常用指令

isErrorPage(是否能使用Exception对象),isELIgnored(是否忽略表达式)

12、jsp的四种范围?

page在同一个页面有效;
request 在同一次请求(请求页面)间有效,一般请求完毕则失效,但若是通过forward的方式跳转,则forward页面依旧能拿到request的值,但如果是通过redirect的方式,则相当于重新发送一次页面请求,request中的值失效;
session 在一个会话的生命周期内有效,简单来说就是与服务器连接的时间内,注意的是所有页面共享,如果期间断线,便会失效;
application 作用域最大,直到服务器停止才会失效,所有页面共享。但使用时不宜定义太多,不然或造成服务器负担加重;

13、jsp作用域由大到小

application> session> request> page
值得注意的是一个request可以包含多个page(include, forward, filter)

14、过滤器有哪些作用?

可以验证客户是否来自可信的网络,可以对客户提交的数据进行重新编码,可以从系统里获得配置的信息,可以过滤掉客户的某些不应该出现的词汇,可以验证用户是否登录,可以验证客户的浏览器是否支持当前的应用,可以记录系统的日志等等。

15、过滤器的用法?(对客户端的请求统一编码和对客户端进行认证)

首先要实现Filter接口,同时覆盖Filter接口的三个方法:
init(FilterConfig config)//用于获得FilterConfig对象;
doFilter(ServletRequest request,ServletResponse response,FilterChain chain)//进行过滤处理的一些业务;
destroy()//销毁Filter。

16、JSP和Servlet中的请求转发分别如何实现?

JSP中的请求转发可以利用forward动作实现:<jsp:forward/>;
Servlet中实现请求转发的方式为:getServletContext().getRequestDispacher(pach).forward(req.res)。

17、JSP 和 Servlet 有哪些相同点和不同点,他们之间的联系是什么?

JSP 是 Servlet 技术的扩展,本质上是 Servlet 的简易方式,更强调应用的外表表达。JSP 编译后是"类 servlet"。Servlet 和 JSP 最主要的不同点在于,Servlet 的应用逻辑是在 Java 文件中,并且完全从表示层中的 HTML 里分离开来。而 JSP 的情况是 Java 和 HTML 可以组合成一个扩展名为.jsp 的文件。JSP 侧重于视图,Servlet 主要用于控制逻辑。

18、详细描述 MVC。

基于 Java 的 Web 应用系统采用 MVC 架构模式,即 model(模型)、view(视图)、control(控制)分离设计;
Model:即处理业务逻辑的模块,每一种处理一个模块;
View:负责页面显示,显示 MODEL 处理结果给用户,主要实现数据到页面转换过程;
Control:负责每个请求的分发,把 FORM 数据传递给 MODEL 处理,把处理结果的数
据传递给 VIEW 显示。

Model 代表的是应用的业务逻辑(通过JavaBean,EJB 组件实现), View 是应用的表示面(由 JSP 页面产生),Controller 是提供应用的处理过程控制(一般是一个 Servlet)

做项目中得到的一些经验

对于url-pattern
/abc/myServlet.do

/abc/*

/*

*.do

/abc/*.do  错误

abc/*.do  错误
Servlet中的service方法,在每次请求都会被调用
sendRedirect()方法后的代码仍会执行
只有request方式处理请求才可以共享ServletRequest对象,当使用重定向时不可以。
只有request域要存值,用转发,其他一律用重定向

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Irons_one

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值