Servlet

Tomcat

关于Tomcat的介绍可以去性能测试初始那个部分看

Tomcat安装 && Idea配置(windows)

### Tomcat安装 首先到apache去进行安装下载tomcat

配置环境变量

配置完环境变量之后

windows : win+r startup 开启tomcat linux : sh catalina.sh run 开启tomcat

访问:127.0.0.1:8080即可访问tomcat ### idea配置

注意idea社区版需要安装插件才能运行web项目配置Tomcat所以请下载旗舰版!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

首先通过maven构建webapp

选择Maven Archetype 

然后在Archtype选择 maven-archtype-webapp

 点击创建

 创建完成之后需要手动添加serc-test-java文件夹和src-text-resources文件夹

 之后点击编辑项目运行配置

 再项目运行配置里点击添加

  选择到tomcal local 之后选择运行

  即可运行javaweb项目

Tomcat配置项目

1、直接将项目放在webapps下(如果idea配置了tomcat,那么会自动放到webapps下)

2、在conf/Catalina/localhost配置xml文件

xml文件名称自己起,自己创建xml

然后直接访问127.0.0.1:8080/xml文件名/index.html

Tomcat热部署

注意!!!!!!!!!!!!!!!!!一定要选择Tomcat Server 不是TomEE server 然后选择update classes and resourse

Tomcat管理项目

直接输入 127.0.0.1:8080 进入管理界面

选择manageing Tomcat

然后在Tomcat文件夹下找到tomcat-users.xml配置用户名和密码,配置完成之后,重启服务器,进行登录管理界面

xml <!-- 配置 --> <Context doBase="项目路径"></Context>

Servlet

服务器如何保存一个网页

静态网页

不与服务端交互,服务端直接返回html文件

动态网页

与服务端交互,服务器保存组件,动态返回不同内容

在java语言钟servlet就是这个组件

servlet的特点

是服务器端的组件 可以动态拼资源(HTML/IMG等) 满足sun公司的规范 处理HTTP协议

什么是servlet

是sun公司推出的,用于在服务端拼动态资源的组件

可以这么理解,就是前后端不分离的情况下,浏览器发起http请求,到服务端的java,然后java通过servlet处理http请求返回html。

前后端分离的情况下,同样是发起请求返回html,然后前端发起http请求数据,java通过servlet处理http请求返回数据

Servlet是sun提供的接口

HttpServlet是这个接口的实现类

## 本质 是一个软件 它和浏览器是评级的关系

不同的厂商开发的不同服务器

tomcat (Apache) WebLogic Nginx

## 开发Servlet

### Servlet接口 实现Servlet接口,需要实现servlet的六个方法

一个Servlet,只能处理一次HTTP请求 ```java

public class InitServlets implements Servlet { /** 初始化,运行在service之前,就是在对象创建之后立即调用的方法 */ @Override public void init(ServletConfig servletConfig) throws ServletException { // 通过该类servletConfig,获取到配置文件中的参数 }

/***
  获取Servlet全局配置

  也就是init方法里的sevletConfig
  */
@Override
public ServletConfig getServletConfig() {
    return null;
}

@Override
public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {

}

/**
   作用等同于getServletConfig
 */
@Override
public String getServletInfo() {
    return null;
}

/***
  当前类的实例,被销毁前由系统调用
 */
@Override
public void destroy() {

}

}

``` ### 编写Servlet 创建一个类,名为xxxServlet 继承HttpServlet,从而间接地实现了Servlet接口,重写父类的方法

配置web.xml文件

配置完成之后重新运行项目去进行访问 xml <servlet> <!--servlet的名字--> <servlet-name>MyServlet</servlet-name> <!--servlet所在的路径--> <servlet-class>java.Servlets.init.Servlets</servlet-class> </servlet> <servlet-mapping> <!--servlet的名写一定要于上面的名字保持一致--> <servlet-name>Servlets</servlet-name> <!--servlet请求路径(地址)--> <url-pattern>/Servlets</url-pattern> </servlet-mapping> ```java //第一种方式,需要配置xml public class InitServlets extends HttpServlet { @Override public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException { // super.service(req, res); PrintWriter pw = res.getWriter(); res.setContentType("text/html"); pw.write("

11111

"); pw.close(); } }

//第二种方式,使用注解的方式,免去xml配置 @WebServlet(name = "Servlets", value = "/Servlets") public class Servlets extends HttpServlet {

@Override
protected void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException {

    res.getWriter().write("1111");

}

@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

}

}

```

### Servlet的生命周期

Servlet的生命周期方法就是init-service-destory

1、客户端请求Servlet
   2、服务端创建Servlet实例对象
   3、服务端自动调用init
   4、开始调用service
   5、service结束之后,实例被销毁之前调用destory
   6、

request方法

request里包含了许多方法,用于获取请求参数

getparmeterMap() 获取参数集合

getparmeter("参数名称") 获取单个参数

getParmeters() 获取复选框

getMethods() 获取请求类型

getRequestURI() 获取请求的相对路径

getRequestURL() 获取请求绝对路径

getRemoteAddr() 获取请求地址

getProtocol()

response

重定向

sendRedirect(url) 重定向到url

请求转发

请求转发是在req对象里

req.getRequestDispatcher(url).forWord(请求对象,响应对象)

浏览器只发生一次请求,后续对该请求进行多次转发传递,浏览器地址不发生改变

输出响应

res.getWriter().writer(String)

HttpServlet

HttpServlet是Servlet的实现类,包含doGet和doPost方法

java public class InitServlets extends HttpServlet { @Override public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException { // super.service(req, res); PrintWriter pw = res.getWriter(); res.setContentType("text/html"); pw.write("<p>11111</p>"); pw.close(); }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值