servlet入门

现学现卖,大概说的就是我吧。。。

-----------------------------------------------

Mac在终端启动Tomcatcd /bin路径

cd /Library/apache-tomcat-8.5.45/bin 
sudo sh startup.sh

Mac在终端关闭Tomcat

cd /Library/apache-tomcat-8.5.45/bin 
sudo sh shupdown.sh

 

 

可能在终端启动了Tomcat,还是没能打开http://localhost:8080/

可能的问题:

端口占用

可能的解决方案:

1.强制退出所有程序

    1.Mac强制退出程序:按住快捷键 Command+Option+Shift+Esc

    2.活动监视器中删除进程

    3.命令行

 2.修改端口

 

Tomcat部署项目的方式:

1.直接将项目放到webapps目录下

 

 通过访问losalhost:8080/hello/123.html访问123.html

  /hello是虚拟路径 /123.html是资源名称

 

简化部署:将项目打成war包,再将war包放置到webapps目录下,war包会自动解压缩

 

2.通过配置conf目录下的server.xml

docBase后面写的是项目的路径

path是虚拟路径

在server.xml中增加

<!-- 部署项目 -->
          <Context docBase="/Users/mac/Desktop/123" path="w"/>
          

(修改后重启服务器)

访问http://localhost:8080/w/123.html成功得到页面

 

3.在/Library/apache-tomcat-8.5.45/conf/Catalina/localhost下创建任意名称的XML文件

在文件中编写

<Context docBase="/Users/mac/Desktop/123">

现在的虚拟路径就是刚创建XML文件的名称

(修改后重启服务器)

访问http://localhost:8080/1/123.html成功得到页面

 

 

 

动态项目:

目录结构

Java动态项目的目录结构:

   项目的根目录

       web.xml:web项目的核心配置文件

       classes目录:放置字节码文件的目录

       lib目录:放置依赖的jar包

 

 

Tomcat与IDEA集成创建web项目(IDEA)

run->edit configurations

 

左侧Tomcat Server->local

 

将项目部署到Tomcat里

 

在index.jsp中写

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>小窗口</title>
</head>
<body>
hello
</body>
</html>

启动服务器

web项目的部署成功了。

 

 

 

 

接下来,我们进入正题(严肃脸)-----servlet

servlet

server applet 运行在服务器端的小程序

servlet是一个接口,定义了Java类被浏览器访问到(Tomcat识别)的规则

我们通过自定义一个类,实现servlet接口,覆写方法

 

1.创建Javaweb/JavaEE项目

2.定义一个类,实现servlet接口

3.实现接口中的方法

4.在webRoot下的web-inf文件夹下的web.xml文件中配置servlet

 

配置web.xml

<servlet-name>stu</servlet-name>中间可以起任意名字,但是要保证上面和下面<servlet-name>stu</servlet-name>中的名字一直,为保证上下的映射关系。
<servlet-class>com.wxy.student</servlet-class>中间是stu对应的类的全限定类名
<url-pattern>/stu</url-pattern>中间是资源名称
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
         version="3.1">
    <servlet>
        <servlet-name>stu</servlet-name>
        <servlet-class>com.wxy.student</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>stu</servlet-name>
        <url-pattern>/stu</url-pattern>
    </servlet-mapping>
</web-app>

 

在Application context中可以改虚拟路径

 

student.java

package com.wxy;

import javax.servlet.ServletException;
import javax.servlet.ServletResponseWrapper;
import java.io.IOException;
import java.io.PrintWriter;

public class student extends javax.servlet.http.HttpServlet {
    private String message;
    protected void doPost(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) throws javax.servlet.ServletException, IOException {

    }
    public void init() throws ServletException {
        message = "perfect";
    }
    protected void doGet(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) throws javax.servlet.ServletException, IOException { ServletResponseWrapper resp;
        response.setContentType("text/html");
        PrintWriter out = response.getWriter();
        out.write("<h1>" + message + "</h1>");
    }
}

 

 

 

 

就这样,就做完了第一个servlet入门小项目,是不是很简单呢!!(*^▽^*)

 

posted @ 2019-10-16 22:51  zuiaimiusi  阅读(149)  评论(0编辑  收藏  举报