Servlet基础(一)
JavaEE:企业级开发技术
<一.基础概念>
j2ee:jdk1.1--1.4 ----->> j2ee1.1 1.2
javaee:jdk--5,6,7 --->>javaee 5,6,7
javaee与servlet,jsp
Servlet:前后台传递数据,基于网络的HTTP请求的处理
实现需要借助web容器
JSP:HTML和嵌入之中的java代码组成
http服务器,web容器,Javaee应用服务器:
http服务器:处理http请求,默认处理静态资源(项目资
源分为静态资源(可被浏览器直接解析)和动态资源(不可以
被浏览器直接解析,需要服务器进行解析或者支持web容器))
apche
web容器:可以处理http请求,既可以处理静态资源,又可
以处理动态资源,但效率低
tomcat
javaee应用服务器:大型服务器,处理大型项目
jboss weblogic
tomcat服务器和http协议请求
1.浏览器向服务器发送请求
(将浏览器想要发送的内容以字符串的形式传给服务器
请求行:请求方式(form表单 get/post)+请求资源
+http版本号
请求头:k:v格式
k:v
content-type:text/html(代表从服务器返回的
资源类型)
回车换行(空白行)
请求体
)
2.服务器响应
(在服务器内部寻找,存在,返回响应
响应行:响应状态(200 ok)
响应头:k:v格式
k:v
空白行
响应体:返回响应内容
)
字符串形式:io流
遵从HTTP协议
HTTP协议:1.客户端和服务端传输数据的方式
2.传输数据的格式
tomcat服务器与jsp,servlet
运行需要web容器,在服务器中运行,要部署在tomcat服务
器中
<二.Tomcat>
bin:存放运行tomocat需要的命令文件
stratup.bat 开启 .sh unix系统
shutdown.bat 关闭服务器 .sh unix系统
conf:配置文件
server.xml
web.xml:servlet配置模板
lib:项目运行所需要的jar包,可共享到项目中
jsp-api.jar
servlet-api.jar
logs:存放日志信息
temp:运行时产生的临时文件,缓冲数据
webapps:存放web项目的位置
work:管理jsp页面
<三.Web项目机构>
1.web项目名就是文件夹
2.固定文件夹:WEN-INF
文件夹:classes --java代码编译为class文件后存放在该
文件夹中
lib--存放web项目在运行时需要的第三方jar包,
这些jar包是项目自己所使用的,而多个项目中需要的jar包放
在tomcat的jar包中
文件:web.xml--web项目的配置文件,,tomcat服务器在
启动期间会自动读取其中内容
(自动读取原因:
1.web项目是在tomcat中部署的
2.web项目结构是固定的
)
<四>浏览器通过url地址,访问web项目中的java代码(动态资源)
要求:
浏览器中输入
http://127.0.0.1:8989/web_test/hello
访问到
HelloWorld类中指定的方法
实质:通过浏览器向web服务器中某个地址发送http协
议的请求(get或post等),让服务器自动调用某个对象中的指定
方法,从而让该方法执行完可以给本次http请求返回一个http响
应。最后浏览器收到响应后进行解析并显示给用户结果(一般会
是一个页面)。
url地址--调用-->java对象中的方法(servlet技术)
在javaee规范中,想实现 这种通过浏览器的地址访问
web项目中的java对象里面的方法 这个功能,就必须按照javaEE
中的相关规范来编写代码(servlet技术就是这个规范
<五>实现servlet功能的步骤:
1.编写servlet
自己写一个普通类,然后去实现或者继承
javaEE规范中所提供的指定接口或者父类,然后再重写指定方法
.这个指定接口或者父类都在tomcat的lib目录里面的servlet-
api.jar中
2.在web.xml文件中配置自己编写好的servlet
因为servlet对象的创建,以及对象中指定方
法的调用,都是由tomcat服务器来负责处理的。
web.xml配置文件有tomcat服务器在期间必须
要读取的web项目的中的一个文件,所有要把自己写好的servlet
相关信息配置到web.xml中,以便让tomcat及时的知道这些信息,
然后就可以创建对象和调用方法了.
<servlet>
<servlet-name>test</servlet-
name>
<servlet-
class>com.briup.test.HelloWorld</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>test</servlet-name>
<url-pattern>/hello</url-pattern>
</servlet-mapping>
Servlet基础(一)的更多相关文章
- JSP数据交互(二)和Servlet基础
01.Application原理与应用 01.application对象的作用域范围是整个应用服务,而它在应用中所承担的责任就类似于一个全局变量.只要服务启动,则application对象就会存在. ...
- Servlet基础(三) Servlet的多线程同步问题
Servlet基础(三) Servlet的多线程同步问题 Servlet/JSP技术和ASP.PHP等相比,由于其多线程运行而具有很高的执行效率. 由于Servlet/JSP默认是以多线程模式执行的, ...
- Servlet基础(二) Servlet的生命周期
Servlet基础(二) Servlet的生命周期 Servlet的生命周期可以分为三个阶段: 1.初始化阶段 2.响应客户请求阶段 3.终止阶段 Servlet的初始化阶段 在下列时刻Servlet ...
- Servlet基础(一) Servlet简介 关键API介绍及结合源码讲解
Servlet基础(一) Servlet基础和关键的API介绍 Servlet简介 Java Servlet是和平台无关的服务器端组件,它运行在Servlet容器中. Servlet容器负责Servl ...
- JSP/Servlet基础语法
相关学习资料 http://my.oschina.net/chape/blog/170247 http://docs.oracle.com/cd/E13222_01/wls/docs81/webapp ...
- Servlet基础简单总结(上)
Servlet基础一些简单总结(上): 1.Java Servlet是运行在Web服务器上的Java程序2.Java平台给Servlet开发者提供了强大的API/面向对象编程平台无关/强类型/垃圾回收 ...
- servlet总结:Servlet基础
Servlet基础 1.手工编写第一个Servlet ⑴继承HttpServlet ⑵重写doGet()或者doPost()方法 ⑶在web.xml中注册Servlet 2.使用eclipse编写第一 ...
- servlet基础(组成与生命周期)
servlet基础作用:servlet是运行在Web服务器或应用服务器上的程序:担当web浏览器或其他HTTP客户程序发出的请求与HTTP服务器上的数据库或应用程序之间的中间层.1.读取客户程序发送的 ...
- Unit01: Servlet基础 、 HTTP协议
Unit01: Servlet基础 . HTTP协议 在页面上输出当前时间 package web; import java.io.IOException; import java.io.PrintW ...
- Servlet基础教程:tutorialspoint-servlet
来自turorialspoint的Servlet基础教程(英文),官网:https://www.tutorialspoint.com/servlets/index.htm 这个教程在国内已经被翻译成中 ...
随机推荐
- 关于content-type
content-type 包含了表单类型和边界字符串信息. 关于content-type get请求的headers中没有content-type这个字段 post 的 content-type 有两 ...
- Neo4j沙盒实验申请过程步骤(图文详解)
不多说,直接上干货! 参考博客 http://blog.csdn.net/u012318074/article/details/72793632 (对此表示感谢) 前期博客 我暂时是将Neo4j ...
- HTMLWEST网页特效大全
网页特效大全网:www.htmlwest.com 收藏一下,很不错的站.
- ONGUI->NGUI->UGUI (Unity UI史)
各GUI的介绍 ONGUI:Unity自带的绘制界面工具,它的成像原理是基于表层的,所以执行效率非常的低,并且没有提供复杂的UI的接口,就算开发者硬着头皮写上去只能让UI的执行效率更低. NGUI:第 ...
- CDR X6打了3折,再送魔镜插件,是真的么?
明人不说暗话,我.要.来.个.小.资.讯. CDR X6打了3折,再送魔镜插件,是真的么? 先来说说CorelDRAW,CorelDRAW众所周知,软件的确不便宜啊,对于个人来说,相当于一个高配苹 ...
- Hive 基本操作
1.创建一个表 (字段表名不加引号‘,分隔符需要加引号) create table t1( id int ,name string ,hobby array<string> ,add ma ...
- python异常处理,多线程,多进程
什么是异常? 异常即是一个事件,该事件会在程序执行过程中发生,影响了程序的正常执行. 一般情况下,在Python无法正常处理程序时就会发生一个异常. 异常是Python对象,表示一个错误. 当Pyth ...
- jquery 终止循环
jQuery中each类似于javascript的for循环 但不同于for循环的是在each里面不能使用break结束循环,也不能使用continue来结束本次循环,想要实现类似的功能就只能用ret ...
- html全屏显示
JavaScript代码: function toggleFullScreen() { if (!document.fullscreenElement && // alternativ ...
- windows关于定时执行的php脚本
根据业务需求,需要服务器每天定时执行一些脚本,如后台提交数据,定时处理数据库等. 最初的思路是在某个控制器里写好方法,加入code验证,定期的用计划任务去访问.由于window计划任务这方面比较low ...