JavaWeb自己整理面试题

1.讲一下http get和post请求。

https://blog.csdn.net/zlczsw/article/details/91046081
HTTP/TCP数据包非常可靠,极少丢包。为了区分这些数据包分为GET, POST, PUT, DELETE方便区分,提高效率。
最直观的区别就是GET把参数包含在URL中,POST通过request body传递参数,在url中看不见。
一般浏览器对URL的限制为2K所以传不了太多参数,且参数暴露在URL中不安全,一般用来获取资源。而POST用来提交复杂的数据/表单。
GET只向服务器发一次请求,返回200状态码。
POST先向服务器发送一次带上请求头的header请求,服务器返回100后才带上data,返回200。/火狐只发一次

2.讲一下servlet。

https://blog.csdn.net/zhouying_12345/article/details/70853639
全称Java Servlert .是用Java编写的服务器端程序。其主要功能在与交互式的浏览和修改数据,生成动态Web内容。狭义的servlet是指Java语言实现的一个接口。接口要实现所有方法所以抽象类GenericServlet出现。大多数请求都是HTTP所以又有了HttpServlet。HttpServlet抽象类是继承于GenericServlet抽象类而来的。
servlet的主要接口:
javax.servlet.ServletConfig;
javax.servlet.ServletException;
javax.servlet.HttpServlet;
javax.servlet.HttpServletRequest;
javax.servlet.HttpServletResponse;
javax.servlet.HttpSession;
javax.servlet.Cookie;
javax.servlet.ServletContext;
javax.servlet.GenericServlet;
主要方法:
Init(ServletConfig ***):初始化
getServletConfig():得到配置
service(ServletRequest req, ServletResponse res):业务逻辑
//HttpServlet 重写doGet 和 doPost 方法相当于service方法 使用HttpServlet抽象类时,还需要借助分别代表Servlet请求和Servlet响应的HttpServletRequest和HttpServletResponse对象。
destroy():销毁/释放内存

3.forward()转发 与redirect()重定向。

forward转发是用request对象调用,是服务器请求资源,服务器直接访问目标地址的URL,把那个URL的响应内容读取过来,然后把这些内容再发给浏览器.浏览器根本不知道服务器发送的内容从哪里来的,所以它的地址栏还是原来的地址.
redirect重定向是用response对象调用,其实是两次request,是服务端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址.所以地址栏显示的是新的URL.

4.Jsp和servlet

https://blog.csdn.net/zt15732625878/article/details/79951933
Jsp底层是用servlet实现的,JSP侧重于视图,Servlet主要用于控制逻辑。
通俗来讲jsp就是在html里面写java代码,servlet就是在java里面写html代码。
运行过程:
客户在第一次请求JSP时,请求较慢,因为JSP Engine先把JSP程序转换成servlet代码,接着将它编译成类文件,以后贮存在内存中再次调用速度就快了;
访问servlet时,可以直接对其编译好的类文件执行。
使用方式:
要想使用servlet必须把它放在特定位置而且必须对其映射配置;
jsp可以放在和html同样位置(webapps根目录下或者webapps根目录下的子目录下)而且不需要配置,可以直接使用。
Servlet在Java代码中通过HttpServletResponse对象动态输出HTML内容;
JSP在静态HTML内容中嵌入Java代码,Java代码被动态执行后生成HTML内容
缺点:
JSP 在Html 中加入了大量的、复杂的业务逻辑,如果后期业务逻辑发生改变,修改jsp 就会捉襟见肘;
Servlet 虽然解决了业务逻辑的问题,但是通过字符串拼接的方式生成动态的Html 页面,也会导致代码臃肿,难以维护;
MVC(Model-View-Controller)模式就扬长避短,将两者完美结合在一起,它把把软件系统分为三个层次:模型(Model)、视图(View)和控制器(Controller);

5.jsp有哪些内置对象?作用分别是什么?

https://blog.csdn.net/qq_37651267/article/details/90758930

  • request:封装客户端的请求,其中包含来自GET或POST请求的参数;
  • response:封装服务器对客户端的响应;
  • pageContext:通过该对象可以获取其他对象;
  • session:封装用户会话的对象;
  • application:封装服务器运行环境的对象;
  • out:输出服务器响应的输出流对象;
  • config:Web应用的配置对象;
  • page:JSP页面本身(相当于Java程序中的this);
  • exception:封装页面抛出异常的对象。

JSP的四大作用域:page、request、session、application
page(本页面):代表变量只能在当前页面上生效。
request(两个页面之间):代表变量能在一次请求中生效,一次请求可能包含一个页面,也可能包含多个页面,比如页面A请求转发到页面B
session(服务端和客户端交互期间):代表变量能在一次会话中生效,基本上就是能在web项目下都有效,session的使用也跟cookie有很大的关系。一般来说,只要浏览器不关闭,cookie就会一直生效,cookie生效,session的使用就不会受到影响。
application(ServletContext:服务器开启与关闭期间):代表变量能一个应用下(多个会话),在服务器下的多个项目之间都能够使用。比如baidu、wenku等共享帐号。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值