版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、n前端界面n网页、手机终端、其他设备(例如ATM)n后台业务n电商(进销存管理、快递管理)n银行(存取款业务)n电信(计费)n安全和性能n安全性、可靠性、扩展性、伸缩性等等n主要涉及前端技术,例如HTML、JSP、ASP、PHP、JavaScript等n容易掌握,技术较低n从业人员主要是低级码农和界面设计师n涉及到业务流程,需要具备数据库、软件工程、高级语言编程等方面的能力n有技术门槛,技术难度较高n从业人员主要是高级码农、系统分析师等n涉及到复杂的算法,技术门槛最高,需要严格的计算机专业的训练n就如同电影,由于只看得到演员,所以演员比导演、摄影、化妆更有名气,而一部电影赚钱最多的是“投资人”
2、。n如何为12306网站解决并发问题?n如何为银行的交易设计安全方案?n如何用几毫秒就能从PB级数据中检索出结果?n如何保证重大邮箱的安全?nHTML、JavaScript、CSS、Android手机APP、IOS手机APPnServlet、Spring、Hibernate、数据库开发n软件开发模式和软件工程n其他课程的专业知识在Web开发中的应用n如何应用操作系统的知识解决并发问题n如何应用信息安全的知识解决安全问题n如何利用算法知识设计高性能的检索算法n因为功能不同划分为不同的层次n业务层和数据访问层都是普通的类Web层 Servlet数据源浏览器请求响应JSP业务层 数据访问层 Java
3、BeansServiceDAOnTomcat最常用nJettynResinnJBossnIBM WebspherenOracle Weblogicn/n可以下载最新版7.x,8.xn解压缩到某个目录即可n设置操作系统环境变量JAVA_HOME为Java安装目录n可执行程序 startup.bat启动,shutdown 关闭n还有其他启动方式 service.bat, tomcat7w.exen配置文件server.xml, ncontext.xml, web.xmln启动器注意设置Java_home环境变量n正常显示说明tomcat已经正常运行n菜
4、单:windowpreference,打开对话框n对话框中:Serverruntime environmentsn单击“add”nDynamic web projectn所有的JSP,HTML,图形等文件在此目录nlib 包文件夹nclasses 编译后的Java类nweb.xml 配置文件nServlet就是用就是用 Java 编写的服务器端程序编写的服务器端程序n由服务器端调用和执行的 Java 类n这种类使用 Java Servlet 应用程序设计接口(API)及相关类和方法。n除了 Java Servlet API , Servlet 还可以使用用以扩展和添加到 API 的 Java
5、类软件包。n对应的软件包有两个javax.servlet.http和和javax.servlet.jspn分别对应我们要讲解的Servlet和JSP编程。n我们通常所说的Servlet编程主要就是指针对HTTP的Servlet编程,用到的就是javax.servlet.http包中的类(典型的就是HttpServlet类),nServlet运行于运行于Servlet引擎管理的引擎管理的Java虚拟机中,虚拟机中,n由来自客户机的请求所唤醒,只要装载一个Servlet就能够处理所有针对这个Servlet的请求,每个新请求使用内存中那个Servlet的相同副本,所以效率很高。n使用Servlet还
6、可以实现大量的服务器端的管理维护功能,以及各种特殊的任务,比如,并发处理多个请求,转送请求,代理等。nWeb服务器服务器,便会自动安装Servlet相关的程序包。【例】使用Servlet在客户端输出简单的问候语句 /HelloWorld.java package test; import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class HelloWorld extends HttpServlet private String greeting; public void init() thr
7、ows ServletException greeting = getInitParameter(greeting); public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException /doGet()是这个Servlet的核心,真正处理请求的地方 PrintWriter out = response.getWriter(); /从HttpServletResponse得到输出流 out.println(); out.println()
8、; out.println( + greeting + ); out.println(); out.println(); out.println( + greeting + ); out.println(); out.println();/上面的语句都是向客户端打印HTML文本 out.close(); /关闭HttpServletResponse n整个类从HttpServlet派生,就跟Applet一样,这个派生关系是必须的。n这个Servlet必须实现doGet()方法(因为它是作为静态页面通过地址访问的,这种方式在HTTP中称为GET请求,这是这个Servlet真正处理请求的地方,是整
9、个Servlet的主体。ndoGet()有两个参数HttpServletRequest req和 HttpServletResponse res。HttpServletRequest包含了客户请求的各种信息,HttpServletResponse则包装了服务器响应,主要处理对客户机的输出。n在中加上下面的配置语句nn n n n nn这样当客户端产生/Hello请求的时候,Tomcat就能把这个请求定向到test.HelloWorld上,同时给出greeting参数的值。该Servlet就能正常运行了。nWebServlet(urlPatterns = /Hello , initParams
10、= WebInitParam(name = greeting, value = Greeting You) )nServlet在tomcat6下面需要在web.xml中配置n n HelloWorldn test.HelloWorldn n n greetingn Greeting You!n n n n HelloWorldn /Hellon 1、Servlet的生命周期的生命周期 Servlet容器负责处理客户请求、把请求传送给Servlet并把结果返回给客户。不同的Web容器实际的实现可能有所不同,但容器与Servlet之间的接口是由Servlet API定义好的,这个接口定义了Serv
11、lett容器在Servlet上要调用的方法及传递给Servlet的对象类。 Servlet的生命周期可以被归纳为下面的步骤: (1) 装载Servlet,这一项操作一般是动态执行的。 (2) Server创建一个Servlet实例;(3) Server调用Servlet的init方法;(4) 一个客户端请求到达Server;(5) Server创建一个请求对象;(6) Server创建一个响应对象;(7) Server激活Servlet的service方法,传递请求和响应对象作为参数;(8) service方法获得关于请求对象的信息,处理请求,访问其他资源,获得需要的信息; (9) servi
12、ce方法使用响应对象的方法。将响应传回Server,最终到达客户端。service方法可能激活其他方法以处理请求。如方法可能激活其他方法以处理请求。如doGet,doPost或其他程序员自己开发的方法(10) 对于更多的客户端请求,Server创建新的请求和响应对象,仍创建新的请求和响应对象,仍然激活此然激活此Servlet的的service方法,方法,将这两个对象作为参数传递给它,如此重复以上的循环,但无需再次调用init方法,Servlet一般只初始化一次(11) 当Server不再需要Servlet时(比如当Server要关闭时),Server调用Servlet的destroy方法。 一
13、旦请求了一个Servlet,就没有办法阻止容器执行一个完整的生命周期。容器在Servlet首次被调用时创建它的一个实例,并保持该实例在内存中,让它对所有的请求进行处理。容器可以决定在任何时候把这个实例从内存中移走。在典型的模型中,容器为每个容器为每个Servlet创建一个单独的实例,容器并创建一个单独的实例,容器并不会每接到一个请求就创建一个新线程,而是使用一个线程池来动态的将线不会每接到一个请求就创建一个新线程,而是使用一个线程池来动态的将线程分配给到来的请求,程分配给到来的请求,但是这从Servlet的观点来看,效果和为每个请求创建一个新线程的效果相同。 2、 Servlet接口接口 在写
14、servlet的时候必须直接或间接的实现这个接口。一般趋向于间接实现:通过从javax.servlet.GenericServlet或javax.servlet.http.HttpServlet派生。在实现servlet接口时必须实现它的五个方法: (1) init():public void init(ServletConfig config) throws ServletException (2) service():public void service(ServletRequest req,ServletResponse res) throws ServletException,IOE
15、xception (3) destroy(): public void destroy() (4) getServletConfig()public ServletConfig getServletConfig() (5) getServletInfo():public String getServletInfo() 下面的类和接口详细情况见下面的类和接口详细情况见servert帮助文档。帮助文档。3、GenericServlet类类4、HttpServlet类类5、HttpServletRequest接口接口6、HttpServletResponse接口接口 7、HttpSession接口接
16、口8、 ServletConfig和和ServletContext【例】Servlet与表单交互的方法表单是HTML中使用最广泛的传递信息的手段。搞清楚Servlet与表单的交互,就在客户端与服务器之间架起了一座桥梁。Servlet使用HttpServlet类中的方法与表单进行交互。1)、静态HTML文本:information.html使用Get调用来传递参数请输入参数: doGet(HttpServletRequestnGET提交的数据会在地址栏中显示出来 nGET:特定浏览器和服务器对URL长度有限制 n在服务器启动后,当Web浏览器端发送过来一个页面请求时,Web服务器先判断是否是JS
17、P页面请求。n如果请求的页面是JSP页面,则由JSP引擎检查该JSP页面,如果该页面是第一次被请求、或不是第一次被请求但已被修改,则JSP引擎将此JSP页面代码转换成Servlet代码,然后JSP引擎调用服务器端的Java编译器javac.exe对Servlet代码进行编译,把它变成字节码(.class)文件,然后再调用Java虚拟机执行该字节码文件,将执行结果传给Web浏览器端。n如果该JSP页面不是第一次被请求,且没有被修改过,则直接由JSP引擎调用JAVA虚拟机执行已编译过的字节码.class文件,然后将结果传送Web浏览器端。n前面我们提到JSP编程对应javax.servlet.js
18、p,更确切的讲,这个包是供JSP引擎使用的,它在做翻译的时候需要用到这个包,我们在编写JSP页面的时候是不需要涉及这个包的。 nnnn第一个JSP页面nnnnnidn姓名nn%nString color1 = 99ccff;nString color2 = 88cc33;nfor (int i = 1; i = 10; i+) nString color = ;nif (i % 2 = 0) ncolor = color1;n else ncolor = color2;nnout.println();nout.println( + i + );nout.println(姓名 + i + );n
19、out.println();nn%nnn使用Servlet来打印大量的HTML语句是很费事的,而JSP的主体是HTML,嵌入的Java语句只负责动态效果,所以使用比Servlet方便的多。nServlet和JSP可以互相配合,取长补短,获得更好的应用效果。n另外一个就是JSP使用的时候不需要单独配置每一个文件,只要是扩展名为jsp,JSP引擎会自动识别。n而Servlet是必须进行配置后才能投入使用的,这也是处于安全性的考虑,直接访问.class文件是不允许的,因为不能保证它是一个合法的Servlet。而JSP是没有经过编译的文本,即使是编译成了Servlet,也肯定是符合Servlet规范的
20、,尽管可能不符合HTML语法,所以它是安全的。nn%nString userName = zhangsan;nCookie cookie = request.getCookies();nCookie cookie_response = null;nList list = Arrays.asList(cookie);nIterator it = list.iterator();nwhile (it.hasNext() nCookie temp = (Cookie) it.next();nif (temp.getName().equals(userName + _access_time) ncoo
21、kie_response = temp;nbreak;nnnout.println(当前的时间: + new Date() + );nif (cookie_response != null) nout.println(上一次访问的时间: + cookie_response.getValue();ncookie_response.setValue(new Date().toString();n else ncookie_response = new Cookie(userName + _access_time,nnew Date().toString();nnresponse.addCookie
22、(cookie_response);nresponse.setContentType(text/html);nresponse.flushBuffer();n%n 在使用JSP技术开发网站时,并不强调使用Servlet。这是为什么呢?Servlet的应用是没有问题的,它非常适合服务器端的处理和编程。但是如果用Servlet处理大量的HTML文本,那么将是一件及其繁琐的事情。这种事情更适合机器去做,否则就是浪费程序员的体力。所以Servlet更适合处理后端的事务,前端的效果用JSP来实现更为合适。 早期的JSP标准给出了两种使用JSP的方式。这些方式都可以归纳为JSP模式1和JSP模式2,主要的差别在于处理大量请求的位置不同。 在模式1中,JSP页面独自响应请求并将处理结果返回客户。这里仍然有视图和内容的分离,因为所有的数据都依靠bean来处理。尽管模式1可以很好的满足小型应用的需要,但却不能满足大型应用的需要。大量使用模式1,常常会导致页面被嵌入大量的Script和Java代码。特别是当需要处理的商业逻辑很复杂时,情况会变得很严重。也许这对于Java程序员来说,这不是大问题。但是如果开发者是前台界面设计人员,在大型项目中,这是很常见的,则代码的开发和维护将出现困难。
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年养老服务机器人项目营销方案
- 2026年AR导航购物中心项目营销方案
- 2026年医疗健康AI大模型项目营销方案
- 2026年仿生蜜蜂项目投资计划书
- 模板方案楼样本
- 2026贵州铝业集团双元新材料有限责任公司招聘6人备考题库含答案详解(预热题)
- 2026陕西西安市长安区村镇建设管理站公益性岗位招聘8人备考题库有完整答案详解
- 2026江西新余高新区国有企业招聘8人备考题库附答案详解(培优a卷)
- 2026江西赣州市龙南市殡葬服务中心招聘会计人员1人备考题库及一套参考答案详解
- 2026年季节性限定消费项目可行性研究报告
- 《TCSUS69-2024智慧水务技术标准》
- 氨基酸(15)腹膜透析液-药品临床应用解读
- 城郊煤矿智能化制度汇编
- 中医科科室规章制度
- 《医疗器械分类目录》-国家药品监督管理局-2002年8月28日 发布
- 人教版初中全部英语单词表
- TBJHWXH 002-2024 路用低氯低钠融雪剂
- 《大学生国防教育教程》全套教学课件
- 实验室仪器设备维护保养计划表
- 锅炉外部检验报告
- 音标拼读练习(彩色版)
评论
0/150
提交评论