一 :用户如何访问网站??
- 1.通过一个网址(URL)访问网站(发出一个请求)
- 2.实际上访问网站 就是访问该网站的服务器
-
访问服务器上面的什么??(代码)
-
静态资源 html div+css(不管什么用户访问 内容不会改变)
-
动态资源 jsp+servlet(根据不同的用户 返回不同的内容)
-
JavaWEB程序员干啥的??
-
不是编写服务器的(有服务器厂商写)
-
而是编写 运行在服务器上的代码
- 3.通过代码(JDBC) 去访问数据库 进行增删改查
- 4.将查询的结果 返回给服务器 你写的那堆代码中
- 5.最后 服务器会将 查询的结果 响应回浏览器(用户)
- 二:TomCat服务器
- bin tomcat服务器操作指令
-
window startup.bat 开启服务
-
Mac startup.sh
- conf 服务器的配置文件 web.xml
- lib 服务器自己使用的jar包 内置dbcp数据库连接池
- webapps 存放自己的工程(将网站运行代码放上去)
- temp 服务器运行时产生临时文件
- logs 存放服务器的日志信息(开启关闭服务器时间 以及运行时产生错误)
- work 服务器自己的工作文件
*三: 利用tomcat操作指令启动和关闭服务器
- 1.打开cmd(控制台)
- 2.切换盘符 cd(去往目录)
-
输入d:
- 3.cd(去往目录) 去往tomcat下的bin文件夹
- 4.执行服务器开启服务的指令
- 5.设置环境变量
- JAVA-HOME
- JRE_HOME
- 6.访问Tomcat服务器的默认网页
- 访问地址(URL)
- http://ip地址:服务器端口号/工程的名字/访问的资源
- 访问默认的Tomcat路径
- http://localhost:8080
- tomcat 默认端口号 8080
- URL全球统一定位符
- http://localhost:8080/test/HelloWorld.html
- URI
- /test/HelloWorld.html
- 7.关闭tomcat服务 shutdown.bat
*四: Eclipse添加tomcat服务器
- 需要修改tomcat设置
- 关联了Eclipse 后 需要将工程存放的位置修改
- 选第二个 关联文件夹 wtpwebapps 切记保存
*五: 服务器上的工程目录
- 项目运行后 会将工程中的WebContent文件夹下的内容编译到服务器上(但是 WebContent不会出现)
- 1.网页资源HTML页面(静态资源)
- 2.META-INF配置工程的扩展应用(暂时没用)
- 3.WEB-INF(重点)工程的所有资源
-
classes项目代码的.class文件
-
lib 工程中使用.jar包(web工程不用添加jar的路径)
-
web.xml 工程配置文件(配置servlet)
- 注意:如果.html页面没有放在WebContent 文件夹下
-
而是放到WEB-INF下 此时该资源无法通过网址来直接访问
-
需要使用servlet 来间接访问
*六:JavaEE是java为服务器端提供的一套规范(接口)
-
规范中有jsp servlet
-
Javax.servlet
-
注意:需要给工程添加tomcat包(添加完成才能使用这套接口)
-
七:servlet(小服务程序) 就是一个java中的接口
-
1.可以接受用户(浏览器)发过来的请求
-
2.处理请求(程序员编写)
-
3.可以将处理完的请求 在响应回浏览器
-
八:创建servlet有三种方式
-
1.实现servlet接口
-
实现接口中的生命周期方法
-
构造方法 init service destroy(4个)
-
注意:需要去工程中的web.xml文件中配置该Servlet的访问路径
-
public class Demo01 implements Servlet{
//构造方法
public Demo01() {
System.out.println(“demo01 的构造方法”);
}
//初始化Servlet的配置信息
@Override
public void init(ServletConfig arg0) throws ServletException {
// TODO Auto-generated method stub
System.out.println(“init初始化方法”);
}
//Servlet的服务方法(处理请求方法)
@Override
public void service(ServletRequest arg0, ServletResponse arg1) throws ServletException, IOException {
// TODO Auto-generated method stub
System.out.println(“service 服务方法”);
}//Servlet的销毁方法
//1.服务器停止时会调用
//2.当应用程序从tomcat中被移除时调用
@Override
public void destroy() {
// TODO Auto-generated method stub
System.out.println(“destroy 销毁方法”);
}
//获取当前Servlet的配置信息
@Override
public ServletConfig getServletConfig() {
// TODO Auto-generated method stub
return null;
}
//获取Servlet的版本 作者信息
@Override
public String getServletInfo() {
// TODO Auto-generated method stub
return null;
}
}
2.servlet创建方式 继承GenericServlet -
只用实现服务方法
-
该类使用缺省适配器模式来写
-
好处 节省代码
-
public class Demo02 extends GenericServlet{
public void service(ServletRequest arg0, ServletResponse arg1) throws ServletException, IOException {
// TODO Auto-generated method stub
System.out.println(“demo02 服务方法”);
}
} -
3.继承 httpservlet
-
利用模板设计模式
public class Demo03 extends HttpServlet {
//重写doget
//重写后 不要调用父类的方法 父类中的处理就是给浏览器发送错误信息
//可以在dopost方法中 调用doget方法
//调用doget方法 好处:不论接收请求时get还是post 写一次处理的代码就行
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
}
//重写dopost
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doGet(req,resp);
}
} -
注意:1.当用户第一次请求时 系统会创建出servlet对象 并且只创建一次
-
2.当用户再次请求同一个servlet时 不会在创建新的servley对象
-
而是 只会调用服务方法(service方法)
-
3.当停止服务器 调用会销毁方法
-
4.不管多少用户(浏览器)访问 都只会创建一个servlet
-
用户通过网址访问服务器 是如何访问到想访问的Servlet?
-
内部访问流程是什么??
-
1.服务器会接受到用户请求过来网址
-
2.通过网址中的工程名/sh-web-01
-
在webapps文件中 找到对应的工程
-
3.在工程中找到web.xml文件 进行读取
-
4.通过用户的访问网址中/demo01(访问的资源路径)
-
找到该路径所对应的servlet-name
-
5.通过servlet-name找到对应的servlet-class
-
6.通过servlet-class系统反射出 该类的对象
-
7.调用servlet生命周期方法