• 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入门小项目,是不是很简单呢!!(*^▽^*)

  • 相关阅读:
    技术部如何做复盘——“年终盘点一对一”之腾讯回来的同学
    技术部如何做复盘——“年终盘点一对一”想要进步的同学
    什么是项目管理,如何做好项目管理?
    技术部如何做复盘——“年终盘点一对一”之不称职的副班长
    500行代码了解Mecached缓存客户端驱动原理
    技术管理进阶——第三个五年,独立思考与落地实操
    《六顶思考帽》——产品脑暴会议也许可以这样玩
    《开拍吧》可以对我们的工作有什么启示?
    聊聊日报设计——日报怎么写,日报有何用?
    技术部如何做复盘——“年终盘点一对一”之一生之敌孙狗!
  • 原文地址:https://www.cnblogs.com/zuiaimiusi/p/11685553.html
Copyright © 2020-2023  润新知