Servlet简介:是一种web服务器端编程技术,是实现特殊的接口,由支持Servlet负责对应的web服务器调用和启动运行,一个servlet负责对应的一个或一组url的访问请求,并返回相应的内容。IDEA对tomcat的webapps目录做了优化,路径名有一个虚拟项目名称*   url:http://localhost:8080/firstweb/first解析:服务器地址:端口/虚拟项目名/servlet的别名uri:虚拟项目名/servlet别名过程:浏览器发送请求到服务器,服务器根据请求url地址中的uri信息在webapps目录下找到对应的项目文件名,然后在web.xml中检索对应的servlet,找到后调用并执行servlet
*
*   Servlet生命周期:在收到请求时根据uri找到对应的项目,再根据web.xml的映射关系servlet利用反射创建对象然后调用init(),响应请求,关闭tomcat时对象销毁
*
*
*   MVC:model view controller发展历程:1.单一应用架构2.垂直应用架构3.分布式服务架构4.流式...架构5.云计算架构
*
*       Controller层和Service层的区别是:Controller层负责具体的业务模块流程的控制;Service层负责业务模块的逻辑应用设计;总结:在具体的项目中,其流程为:Controller层调用Service层的方法,Service层调用Dao层中的方法,其中调用的参数是使用Entity层进行传递的。总的来说这样每层做什么的分类只是为了使业务逻辑更加清晰,写代码更加方便,所以有时候也需要根据具体情况来,但是大体的都是这样处理的,因为它其实就是提供一种规则,让你把相同类型的代码放在一起,这样就形成了层次,从而达到分层解耦、复用、便于测试和维护的目的。*   连接数据库Access denying可能因为服务被其他使用
*Servlet的流程处理:1.设置请求编码格式2.设置响应编码格式3.接收请求段的参数4.进行逻辑代码处理5.返回响应结果
*
*    处理乱码问题1.get请求1.获取字符后使用new String(name.getBytes("iso-8859-1"),"utf-8");2.设置request的编码格式1.request.setCharacterEncoding("utf-8");同时在配置文件中添加useBodyEncodingForURI=true的属性3.在server.xml中添加URIEncoding="utf-8"2.post请求1.request.setCharacterEncoding("utf-8");3.response响应1.response.setCharacterEncoding("gbk");依据客户端
*
*     请求分发和重定向的区别:Servlet重定向,浏览器发送两次请求,浏览器地址发生变化,请求过程中需要两队请求响应对象两个servlet不能共享请求请求转发请求1次,地址栏不变数据共享,跳转限制在本站资源,发生在服务端重定向发请求2次,地址栏变化数据不共享,跳转任意url资源,发生在客户端
*
*   对于重定向后数据就不再共享了,那么数据的共享如何实现呢?引入cookie和session,因为HTTP协议是一个无状态的协议,当服务端响应之后连接就会关闭,在服务器端就不再保留连接信息。那么客户端多次请求且需要相同参数时,应该怎么处理?cookie:保存在客户端,临时cookie保存在内存中,浏览器关闭cookie消失。持久化cookie保存在浏览器的某个目录
*       session:表示会话,在一段时间里,用户与服务器之间的交互操作,session对象是用户在发送不同请求参数,在服务器端保存不同请求共享数据的存储对象session特点:依赖cookie技术的服务端数据存储计数,由服务端创建,每个用户都有独立的session对象,默认存储时间30min,每次关闭浏览器都会重新请求开启一个新的sessionId,因为返回的JsessionId保存在浏览器的内存中,是临时的cookie所以关闭自动消失session可保证用户多个请求的数据共享cookie解决请求时含有相同值那么不同用户的数据共享?使用ServletContext:解释:运行在JVM上的每一个web应用程序都有一个与之对应的Servlet上下文即servlet运行环境,ServletContext对象被web应用程序中的所有servlet访问。ServletContext对象是web服务器中一个一直路径的根ServletContext:解决不同用户数据共享问题特点:1.由服务器创建2.所有用户共享一个ServletContext对象3.所有servlet可以访问同一个ServletContext中的属性4.每一个web项目对应一个ServletContextweb.xml中可配置ServletContext共有属性使用context-param标签
*
*       ServletConfig对象是Servlet的专属对象,每个Servlet都有一个,是用来获取web.xml中的Servlet独有的配置信息
*
*   直接请求1.jsp页面是tomcat收到请求,jsp引擎根据1.jsp生成的java类执行对应的class文件将执行的结果输送给tomcat,tomcat发送给客户端*                                   【JSP】
*   page标签import导包pageEncoding设置页面编码格式,但是已经设置了contentType就不需要设置pageEncoding了但必须保持一致errorPage页面发生逻辑错误要跳转的页面extends设置转译后的servlet继承的父类,格式-包名+类名局部代码块定义的代码在service方法中全局代码块用来定义公用的方法,方法的调用要使用局部代码块堆属性和方法调用使用<%=%>这种格式,注意:不能在方法或者变量后添加;include标签静态导入<%@ include file = "相对路径"%>不会讲静态导入的文件生成新的字节码文件,不利于维护(如重复变量名)动态导入<jsp:include page="相对路径路径"></jsp:include>生成新的字节码文件解耦,显示时合并显示请求转发<jsp:forward page="forward.jsp"></jsp:forward>jsp九大内置对象:request封装当前的请求数据,由tomcat创建,一次请求对以一个request对象response响应对象,可用于重定向session封装一个用户的不同请求的共享数据,一次会话对应一个sessionapplication等同ServletContext一个web项目只有一个,存储所有用户共享数据page代表jsp对象,跟java中的this指针类似pageContext页面上下文(每个页面对应一个),封装其他的内置对象以及当前页面的运行信息,伴随页面结束而结束config相当于ServletConfig对象,获取web.xml中的数据完成servlet初始化工作exception使用时必须在page指令添加属性isErrorPage=trueout响应对象jsp内部使用的带有缓冲区的响应对象jsp四大作用域:pageContext解决当前页面的数据共享request一次请求的servlet数据共享,通过请求转发将数据流转到下一个servletsession一次会话,用户发送不同请求之间数据共享,数据可流转到其他请求application表示在项目内不同用户的数据共享,用户之间的数据流转路径问题
*           相对路径绝对路径>使用jsp的全局路径声明<%String basePath = request.getScheme() + "://"+ request.getServerName() + ":"+ request.getServerPort()+ request.getContextPath() + "/";%><base href="<%=basePath%>">*   -----------------------------EL------------------------------------------
*       为了解决servlet和jsp作用域数据的交换引入EL表达式,在jsp中获取对象或者集合中元素的属性特别麻烦,所以使用EL表达式(获取作用域中的属性),使用的时候使用作用域中的key用.引用属性,[]指定索引示例如下
*       姓名:${param.name} 这是request里的参数获取方式密码:${param.pwd}姓名:${name}住址:${home}姓名:${azir.name}住址:${azir.address}姓名:${list[1].name}住址:${list[1].address}姓名:${hero.zed}住址:${hero.asso}
*
*   pageContext-->request-->session-->application如果四个作用域中都有同样键的时候取值按照从小到大顺序那么非要指定一个取值的域呢?
*       pageContext:${pageScope.name}<br>request:${requestScope.name}<br>session:${sessionScope.name}<br>application:${applicationScope.name}<hr>
*
*   EL表达式运算:算术运算符、关系运算符、逻辑运算+-*/%运算boolean运算注意:对于+运算不会做字符串拼接,只会对数字类型+操作,与字符串+运算会报错
*
*   EL表达式获取cookie和请求头信息:${cookie.JSESSIONID.name}<br>${cookie.JSESSIONID.value}<br>【EL表达式获取共享作用域的数据】对于EL表达式进行逻辑判断?当然可以使用jsp标签书写,但是导致书写不便,难于维护,引入JSTL,是apache对EL的扩展*   我想说几句:jstl的导包让我火冒三丈,一直出现不能解析路径http://java.sun.com/jsp/jstl/core报500错误,有人说是tomcat的servlet和jsp版本与jstl不吻合导致,然后我换tomcat版本试不同版本的jstl和依赖包standard包还是不行最后我换回tomcat8之后使用jstl1.2和taglibs-standard-jstlel-1.2.5.jar才好,折腾了5个小时,真让人头大,尝试了很多次,最后想放弃了报着试最后一次的想法,结果他妈的居然好了,你说气人不!还有IDEA不需要在Schemas and DTDs中配置uri路径。
*
*   URL统一资源定位符由协议ip+port+路径组成,它是URI的子集,可以理解为用某个协议,访问某个服务器上的资源。只要能唯一标识一个资源就可以认为是URI
*
*   过滤器:能够对web请求和web响应的头属性和内容体进行操作的一种特殊web组件,过滤器的特殊之处在于本身并不直接生成web响应而是拦截web请求和响应,一边查看、提交或以某种方式操作客户机和服务器之间的数据交换
*

Servlet Jsp(个人笔记)相关推荐

  1. Head First Servlet JSP读书笔记

    Head First Servlet && JSP 引子 Sun 考试-SCJP->SWCCD,$200 学习原则 图胜于文 采用交谈式学习风格 Keep Attention,T ...

  2. head first servlet jsp 学习笔记

    1.web服务器和客户做什么?他们如何交流 直白的讲,用户可以通过web浏览器请求一些资源,web服务器得到这些请求之后,查找资源,然后向用户返回一些结果. 这个服务器,可能是是物理主机,可能是web ...

  3. (Servlet+Jsp)Web编程笔记(一套就够了)

    文章目录 Web编程技术笔记 1. BS架构与CS架构 2. idea安装及使用 3. Servlet介绍 1. 新建一个Servlet 2. 配置web服务器 Servlet有两种配置方式 1. 注 ...

  4. Head first servlet and jsp学习笔记

    学习中遇到的问题:java基础不行,都忘光了. 主要是:继承,接口,多线程,IO.尤其是多线程,在分布式系统中应该使用的比较多 第一章:前言和体系结构 HTTP协议: TCP/IP的上层协议(应用层) ...

  5. [JSP暑假实训] 四.MyEclipse+Servlet+JSP实现火车票网站查询、修改、删除操作

    本系列文章是作者暑假给学生进行实训分享的笔记,主要介绍MyEclipse环境下JSP网站开发,包括JAVA基础.网页布局.数据库基础.Servlet.前端后台数据库交互.DAO等知识. 前一篇文章讲解 ...

  6. 【学习笔记】JSP学习笔记(上)

    我是灼灼,一只初学Java的大一金渐层. 向往余秀华和狄兰·托马斯的疯狂,时常沉溺于将情感以诗相寄:追逐过王尔德.王小波的文字,后陷于毛姆和斯蒂芬·金不可自拔:热爱文学的浪潮,白日梦到底却总在现实里清 ...

  7. Servlet+jsp开发图书管理系统流程。

    本人在学习Servlet+JSP时候,是直接看的一个40课时的实战项目.根据项目学习写这种项目时候的套路. 学习了包括如何分层,数据结构的使用,文件,接口的整理,还有servlet+jsp的基础知识等 ...

  8. Jsp学习笔记——第二天

    Jsp学习打卡 Jsp学习笔记---第二天 Jsp笔记 第二天 一. 复习 二. 动作元素(包含,转发) 1. 包含动作 [重点] 2. 转发动作 [了解] 三. 隐含对象(内置对象) 1. 概念 2 ...

  9. Servlet Jsp | 3:在idea下开发MVC项目

    目录 Servlet & Jsp 世界中的MVC 模式: 一.创建一个JavaWeb项目,完成html页面 1.创建项目 2.编写首页面 二.配置web.xml文件,将url映射到servle ...

最新文章

  1. 查看源代码Source not found及在eclipse中配置jdk的src.zip源代码
  2. linux 系统管理命令整理
  3. 自我学习的技巧和建议
  4. Python django解决跨域请求的问题
  5. showModalDialog页面
  6. vForum 2011 Beijing现场图文播报三 动手实验营
  7. 【转】struct epoll_event
  8. Android九宫格闪烁,js实现九宫格点击按钮随机三个格子闪烁,发生错误
  9. 【实践】端智能在大众点评搜索推荐重排序的应用实践
  10. Python成绩单雷达图
  11. NGINX 发布影响LDAP 实现的0day 缓解措施
  12. mysql 使用concat模糊查询
  13. Linux交换空间(swap space)
  14. R笔记3:ggplot绘制商务图表…
  15. 如何恢复被删短信_手机短信删除了怎么恢复?超级简单的两种方法
  16. ceres实现针孔相机bundle adjustment
  17. 树莓派-内核启动报错mmc0: error -5 whilst initialising MMC card
  18. disable属性导致后台接收值为null解决方法
  19. Eclipse的下载、安装与汉化
  20. 关系数据库——数据库恢复

热门文章

  1. 把16 支球队随机分为4 个组。
  2. 51校园购==酷玩网
  3. 手把手教你 centos7 安装 OpenLDAP 2.4.44 实战
  4. 二、UNO项目Demo创建时遇到的问题
  5. 北京工业大学计算机科学与技术考研真题,北京工业大学计算机科学与技术2022考研经验...
  6. put url带参数_问题回答:Http 请求的Post 和Put 的区别
  7. 课程预约小程序制作功能介绍
  8. 【一起入门MachineLearning】中科院机器学习第*课-线性鉴别分析:Fisher判别
  9. 如何撰写管理咨询项目建议书
  10. 深圳市晶光华电子有限公司 - 晶振选型的四个重要参数是什么?