2018.10.3 MianShiBaoDian JavaWeb后端部分
MSBD 四、JavaWeb后端部分
1.Tomcat的优化经验
去掉对web.xml的监控,吧jsp提前编写成servlet,由于物理内存的情况,加大Tomcat使用的jvm的内存
2.HTTP请求的GET与POST方式的区别
(1)get是从服务器上获取数据,post是向服务器传送数据。
(2)get是把参数数据队列加载大提交表单的Action属性所指向的Url中,值和表单内各个字段一一对应,在Url中可以看到。post通过Http post机制,将表单内的各个字段与其内容在HTML HEADER内一起传送到Action属性所指的Url地址。用户看不到这个进程。
(3)对于get方式。服务器端用request。QueryString获取变量的值,对于post方式,服务器端用request.form 获取提交的数据
(4)get传送的数据量较小,不能大于2KB。post传送的数据量较大,一般被默认为不受限制。但理论上,IIS4中最大量为80KB,IIS5中为100KB
(5)get安全性非常低,post安全性较高。但是执行效率区别post方法好
3.解释一下什么是servlet?
是用Java编写的服务器端程序。主要功能在与交互式地浏览和修改数据,生成动态Web内容。狭义的Servlet是指Java语言实现的一个接口,广义的Servlet是指任何实现这个Servlet接口的类,一般情况下,人们将Servlet理解为后者。Servlet云星宇支持Java的应用服务器中。从原理上讲,Servlet可以响应任何类型的请求,但绝大多数情况下Servlet只用来扩展基于HTTP协议的Web服务器。
4.说一说Servlet的生命周期
servlet 有良好的生存期定义,包括加载和实例化、初始化、处理请求以及服务结束。这个生存期有javax.servlet.Servlet 接口的init,service和的story方法表达
servlet被服务器实例化后,容器运行期init方法,请求到达时运行其service方法,service方法自动派遣运行语言请求对应的doXXX方法(doGet,doPost)等,当服务器决定实例销毁的时候调用其的story方法。
web容器加载servlet,生命周期开始。通过调用servlet的init() 进行servlet的初始化。通过调用service()方法实现,根据请求的不同调用不同的do***() 方法结束服务,web容器调用servlet的destory() 方法
5、Servlet的基本架构
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.什么情况下调用doGet()和doPost()?
Jsp页面中的FORM标签里的method属性为get时调用doGet(),为post时调用doPost()。
8.Request对象的主要方法:
setAttribute(String name,Object):设置名字为name的request的参数值
getAttribute(String name):返回由name指定的属性值
getAttributeNames():返回request对象所有属性的名字集合,结果是一个枚举的实例
getCookies():返回客户端的所有Cookie对象,结果是一个Cookie数组
getCharacterEncoding():返回请求中的字符编码方式
getContentLength():返回请求的Body的长度
getHeader(String name):获得HTTP协议定义的文件头信息
getHeaders(String name):返回指定名字的request Header的所有值,结果是一个枚举的实例
getHeaderNames():返回所以request Header的名字,结果是一个枚举的实例
getInputStream():返回请求的输入流,用于获得请求中的数据
getMethod():获得客户端向服务器端传送数据的方法
9.forward和redirect的区别
forward 是服务器请求资源,服务器直接访问目标地址的URL,把那个URl的响应内容读取过来,然后把这些内容在发给浏览器,浏览器根本不知道服务器发送的内容是从哪里发过来的,所以它的地址栏还是原来的地址不会改变
redirect就是服务器端根据逻辑,,发送一个请求状态码,高速浏览器重新去请求那个地址,一般俩说浏览器会用刚才请求的所有参数重新请求,所以session,request参数都可以获取。
10.request.getAttribute() 和request.getParameter() 有什么区别?
getParameter 是用来接受用post个get方法传递过来的参数的.
getAttribute 必须先setAttribute.
(1)request.getParameter() 取得是通过容器的实现来取得通过类似post,get等方式传入的数据,request.setAttribute()和getAttribute()只是在web容器内部流转,仅仅是请求处理阶段。
(2)request.getParameter() 方法传递的数据,会从Web客户端传到Web服务器端,代表HTTP请求数据。request.getParameter()方法返回String类型的数据。
(3)HttpServletRequest 类有setAttribute()方法,而没有setParameter()方法
11.Jsp有哪些内置对象?作用分别是什么?分别有什么方法?
JSp有9个内置对象
request用户端请求:次请求会包含来自get、post请求的参数
response 网页传回用户端的回应
pageContext 网页的属性在这里设置
session 与请求有关的会话期
application servlet 正在执行的内容
out 用来传送回应的输出
12.Jsp有哪些动作?作用分别是什么?
jsp共有6种基本动作
jsp:include 在页面被请求的时候引入一个文件
jsp:useBean:寻找或实例化一个JavaBean
jsp:setProperty:设置JavaBean的属性
jsp:setProperty:输出某个JavaBean的属性
jsp:forward:把请求跳转到一个新的页面
jsp:plugin: 根据浏览器类型为Java插件生成Object或Embed标记
13.Jsp常用指令
isErrorPage(是否能使用Exception对象),isElgnored(是否忽略表达式)
<%@ page import="com.etc.vo.*" %>
<%@ page pageEcoding="gb2312" %>
errorPage属性:设置JSP页面的错误页面。当JSP中发生异常或错误却没有被处理时,容器将请求转发到错误页面。 <%@ page errorPage="error.jsp" %>
14.Jsp动态include 和静态include的区别?
动态include用jsp:include 动作实现
<jsp:include page="include.jsp" flush=true />它总是会检查所含文件中的变化,适合用于包含动态页面,并且可以带参数,静态include用include伪码实现,定不会检查所含文件的变化,适用于含静态页面<%@ include file="include.jsp"%>
15.两种跳转方式分别是什么?有什么区别?
有两种:分别是,
<jsp:include page="a.jsp" flush=true />
<jsp:forward page="b.jsp"/>
前者页面不会转向,include所指的页面,只是显示该页的结果。主页面还是原来的页面,执行完后还会回来,相当于函数的掉调用
16.页面间对象传递的方法
request session application cookie
17.JSP和Servlet有哪些相同点和不通电,他们之间的联系是什么?
Jsp是Servlet技术的扩展,本质上是Servlet的简易方式,更强调应用的外表表达。Jsp编译后是类Servlet。Servlet和Jsp最主要的不同点在于Servlet的应用逻辑是在Java文件中,并且完全从表示层中的HTML里分离开来。而Jsp的情况是Java和HTML完全组合成一个扩展名为.jsp 的文件。Jsp侧重于师徒,Servlet主要用于控制逻辑
18.MVC的各个部分都有哪些技术来实现?如何实现?
MVC是Model--View--Controller的简写。Model代表的是应用业务逻辑(通过JavaBean,EJB组件来实现),View是应用的表示面(由Jsp页面产生),COntroller是提供应用的处理过程控制(一般是一个servlet),通过这种设计模式把应用逻辑,处理过程和显示分成不同的组件实现。这些组件可以进行交互和重用
19.我们在web应用开发过程中经常遇到输出某种编码的字符,如iso8859-1等,如何输出一个某种编码的字符串?
Public String translate (String str) {
String tempStr = "";
try {
tempStr = new String(str.getBytes("ISO-8859-1"), "GBK");
tempStr = tempStr.trim();
} catch (Exception e) {
System.err.println(e.getMessage());
}
return tempStr;
}
2018.10.3 MianShiBaoDian JavaWeb后端部分的更多相关文章
- JavaWEB后端支付银联,支付宝,微信对接
注:本文来源于:< JavaWEB后端支付银联,支付宝,微信对接 > JavaWEB后端支付银联,支付宝,微信对接 标签(空格分隔): java 项目概述 最近项目需要后端打通支付,所 ...
- 怎么把Thu Nov 22 2018 10:49:36 GMT+0800转换成正常日期
this.data //Thu Nov 22 2018 10:49:36 GMT+0800 this.date_of_birth = date.getFullYear() + '-' + (date. ...
- 2018.10.26 浪在ACM 集训队第四次测试赛
2018.10.26 浪在ACM 集训队第四次测试赛 题目一览表 来源 考察知识点 完成时间 A 生活大爆炸版 石头剪刀布 NOIP 提高组 2014 模拟??? 2018.11.9 B 联合 ...
- python中使用Opencv进行车牌号检测——2018.10.24
初学Python.Opencv,想用它做个实例解决车牌号检测. 车牌号检测需要分为四个部分:1.车辆图像获取.2.车牌定位.3.车牌字符分割和4.车牌字符识别 在百度查到了车牌识别部分车牌定位和车牌字 ...
- OSC Source Code Innovation Salon(2018.10.20)
时间:2018.10.20地点:北京 朝阳 浦项中心B座2层
- IDC Digital Transition Annual Festival(2018.10.19)
时间:2018.10.19地点:北京万达文化酒店
- Dell Technology Summit(2018.10.17)
时间:2018.10.17地点:北京国家会议中心
- Trusted Block Chain Summit(2018.10.09)
时间:2018.10.09地点:北京金隅喜来登大酒店
- 2018.10.2浪在ACM 集训队第三次测试赛
2018.10.26 浪在ACM 集训队第三次测试赛 今天是暴力场吗???????可怕 题目一览表 来源 考察知识点 完成时间 A 1275 珠心算测试 NOIP 普及组 2014 暴力??? 201 ...
随机推荐
- logrtate 切割详解
Logrotate是Linux下一款日志管理工具,可用于日志文件的转储(即删除旧日志文件,创建新日志文件).可以根据日志大小或者按照某时段间隔来转储,内部使用cron程序来执行.Logrotate还可 ...
- 网页引用Font Awesome图标
问题:最近在IIS上部署web项目的时候,发现浏览器总是报找不到woff.woff2字体的错误.导致浏览器加载字体报404错误,白白消耗了100-200毫秒的加载时间. 原因:因为服务器IIS不认SV ...
- LeetCode 112.路径总和(C++)
给定一个二叉树和一个目标和,判断该树中是否存在根节点到叶子节点的路径,这条路径上所有节点值相加等于目标和. 说明: 叶子节点是指没有子节点的节点. 示例: 给定如下二叉树,以及目标和 sum = 22 ...
- 1、java线程模型
要了解多线程,先需要把java线程模型搞清楚,否则有时候很难理清楚一个问题. 硬件多线程: 物理机硬件的并发问题跟jvm中的情况有不少相似之处,物理机的并发处理方案对于虚拟机也有相当大的参考意义.在买 ...
- 【学习】Unity手游之路<十二>手游资源热更新策略探讨
http://blog.csdn.net/janeky/article/details/17666409 =============================================== ...
- 8086键盘输入实验——《x86汇编语言:从实模式到保护模式》读书笔记07
1.BIOS中断 我们可以为所有中断类型自定义中断处理过程,包括内部中断.硬件中断和软中断. BIOS中断,又称BIOS功能调用,主要是为了方便地使用最基本的硬件访问功能.通常,为了区分针对同一硬件的 ...
- mongodb insert()、save()的区别
mongodb 的 insert().save() ,区别主要是:若存在主键,insert() 不做操作,而save() 则更改原来的内容为新内容. 存在数据: { _id : 1, " ...
- oracle dblink简介
database link概述 database link是定义一个数据库到另一个数据库的路径的对象,database link允许你查询远程表及执行远程程序.在任何分布式环境里,database都是 ...
- 深入理解JavaScript系列(26):设计模式之构造函数模式
介绍 构造函数大家都很熟悉了,不过如果你是新手,还是有必要来了解一下什么叫构造函数的.构造函数用于创建特定类型的对象——不仅声明了使用的对象,构造函数还可以接受参数以便第一次创建对象的时候设置对象的成 ...
- CheckBox 样式
.cb td { width: 100px; } .cb label { display: inline-block; ...