初学servlet,idea中写servlet+jdbc

idea中写servlet+jdbc

1.idea里面新创一个project

名字就叫javaweb

创建project

2.新建一个module

名字就叫servlet01

在这里插入图片描述

3.给module添加javeEE框架

然后为了让servlet01变成具有javaweb的目录结构(比如web-inf这些),需要将servlet01配为javaEE:在servlet01下add framework support(右击添加javaee),此时servlet01的目录结构就应该是web-inf(下面有web.xml)+index.jsp

在这里插入图片描述

4.然后就可以写servlet程序了,不过还是先创建需要的文件!

在项目的src中新建package(这里名字就叫com.student),并创建实现了servlet接口的java程序(名字就叫studentservelt.java,注意这里还无法识别servlet接口,因为你的servlet-api.jar包还在tomcat-Apache10/lib里,这时需要在project strcuture里面+jar包依赖),这时idea就可以识别servlet关键字了,然后alt+enter实现接口中需要实现的方法(init,service…五个)。

在这里插入图片描述

5.正式开写java程序(servlet)

写studentservlet.java,下面是代码

package com.student;

import jakarta.servlet.*;

import javax.swing.*;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.*;

public class StudentServlet implements Servlet {

    @Override
    public void init(ServletConfig servletConfig) throws ServletException {

    }

    @Override
    public ServletConfig getServletConfig() {
        return null;
    }

    @Override
    public void service(ServletRequest Request, ServletResponse Response) throws ServletException, IOException {
//        设置一下response的响应内容的类型
        Response.setContentType("text/html");
//        获取一下Response的输出流,将测试数据打印到html上
        PrintWriter writer = Response.getWriter();


        //jdbc连接数据库
        String url="jdbc:mysql://localhost:3306/xsr_dbms1";
        String user="root";
        String pwd="xxxxxx";
        String sql="select id,name from student";
        Connection conn=null;
        PreparedStatement ps=null;
        ResultSet rs=null;
        //注册驱动,获取连接,执行sql,处理结果集
        try {
            Class.forName("com.mysql.cj.jdbc.Driver");
            conn= DriverManager.getConnection(url, user, pwd);
            ps = conn.prepareStatement(sql);
            rs=ps.executeQuery();
            while(rs.next()){
                String id=rs.getString("id");
                String name=rs.getString("name");
//                System.out.println(id+","+name);
            writer.print(id+","+name+"<br>");
            }
        } catch (SQLException | ClassNotFoundException e) {
            throw new RuntimeException(e);
        }finally {
            if (rs != null) {
                try {
                    rs.close();
                } catch (SQLException e) {
                    throw new RuntimeException(e);
                }
            }
            if (ps != null) {
                if (ps != null) {
                    try {
                        ps.close();
                    } catch (SQLException e) {
                        throw new RuntimeException(e);
                    }
                }
            }
            if (conn != null) {
                if (conn != null) {
                    try {
                        conn.close();
                    } catch (SQLException e) {
                        throw new RuntimeException(e);
                    }
                }
            }
        }


    }

    @Override
    public String getServletInfo() {
        return null;
    }

    @Override
    public void destroy() {

    }
}

注意添加mysql-connector-java的jar包

6.注册servlet

然后注册servlet:配置web.xml文件(路径与servlet类对应):web-app标签里,新创servlet和servlet-mapping标签(前者根据servlet-name找到servlet实现类,后者匹配项目下的路径找到servlet名字,我这servlet/servlet-name就随便起个叫servlet to student,servlet/servlet-class叫javawebtest_01.studentservlet,servlet-mapping/url-pattern为/student)。

7.部署tomcat

程序写好就可以将webapp部署到tomcat了
在绿色小锤子旁,点击add configurations,点击+,找到tomcat server,进入tomcat服务器配置界面:
在里面首先确定该server名字(就叫tomcat 10吧),确定server home(引入tomcat-Apache文件路径),然后确定open brower(我默认不打开),确定url(如果是本机就一般是http://localost:8080,这就是tomcat server的端口)。确定 on update action(默认就restart server,每当更新项目源代码就重启server)。确定JRE(默认)。看是否修改tomcat的http port(默认就8080),

然后Deployment部署吧!
在Deployment界面中,给server中部署webapp:

点击+,artifact,默认生成实现了Servlet接口的类的对应文件(servlet01:war exploded),然后确定Application context(应用上下文,规定该war exploded的路径,为项目的根路径,我这里是xmm),然后在idea下面就弹出一个界面(service),你可以看到该server底下部署的webapp(servlet01:war exploded)

8.启动tomcat

部署好tomcat就可以启动啦!
还是那个小锤子旁,点击虫子(debug,建议这样启动tomcat,因为信息都可以在idea的debugger中看到tomcat的信息),
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uXPEW4DG-1674580683972)(C:\Users\27512\AppData\Roaming\Typora\typora-user-images\image-20230125010750863.png)]

9.访问url测试

没啥问题就可以测试拉!在浏览器中搜http://localost:8080/xmm/,如果没错的话啥都看不到,因为你没html哈哈哈,在与web-inf同级,创建index.html(因为如果直接访问http://localost:8080/xmm就可以直接访问到index.html,如果是其他名字的html的话,就要在后面加上路径),

在index.html中来一个a链接,a链接的src为/xmm/xxx

(xxx为web.xml中servlet标签的设置路径,即servlet-mapping下的url-pattern(我这的xxx就是student),点击这个a连接就可以看我的测试代码(即通过jdbc将数据库的一张表,用servlet的service方法的ServletResponse参数的getWriter()获取的输出流,按属性打印到/xmm/student路径对应的html上)

10.重新测试,大功告成!

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qUKRs12c-1674580683973)(C:\Users\27512\AppData\Roaming\Typora\typora-user-images\image-20230125011445836.png)]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

编程就是n踢r

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值