BS系统结构的角色与协议与Servlet简单的应用

BS系统结构的角色与协议与Servlet简单的应用,第1张

B/S系统结构的角色与协议与Servlet简单的应用 一、B/S系统结构的角色与协议

 在B/S结构中有哪些角色呢?

浏览器开发团队(谷歌,百度,火狐,IE)WEB Server 开发团队(Tomcat ,Jetty,WebLogic...)DB Server 开发团队(My SQL,Oracle...)webapps的开发团队(程序员...)

角色与角色之间需要遵守哪些规范,哪些协议?

先思考一个问题:假设我们的手机充电器坏掉了,在别的厂家买了一个充电器,不仅我们手机能用这个充电器,别的手机也能用。这说明了什么?是不是说明了手机的厂家与充电器的厂家都共同遵守了一个规范。才能使充电器与手机匹配上WEB Server 服务器与 webapps 都共同遵守一套规范,这个规范就是 Serverlet ,SUN公司制定,能保证 我们在 Tomcat 服务器上开发的webapps 在其他服务器上也能运行Browser 与 WEB Server 之间有一套传输协议:HTTP(超文本链接协议)W3C组织制定DB Server 与 WEB Server 之间的规范:JDBC,SUN公司制定通过我们分析,路径 与  java小程序之间的对应关系应该有什么指定呢?

将路径 和 java小程序【某个Servlet 】对应的关系 写入配置文件中,Tomcat 通过解析配置文件匹配与路径对应的java小程序【某个Servlet】对于我们程序员来说,只需要干俩件事:

1、编写一个类实现 Servlet 接口2、将 路径  和 类 的对应关系写到配置文件中注意:这个配置文件不能瞎写,文件名是固定的,文件的存放路径也是固定的。所以,其实Servlet不仅仅是一个接口,同时还规定了配置文件以及webapps 存放位置的一些个规范。 二、Servlet 的简单应用

开发一个带有Servlet【java小程序】的webapp

第一步:在webapps目录下新建一个目录,crm【目录名随意】。

crm 就是 webapp 的根目录第二步:在 crm 目录下新建一个目录:WEB-INF。

注意:名字不能随便乱写,必须大写,这是Servlet 中规范的。第三步:在WEB-INF目录下新建一个目录:classes

这个目录名字也不能随便写,都是小写,也是规范之一。这个目录下存放的是字节码文件,Java编译之后的文件第四步:在WEB-INF 目录下新建一个目录:lib

这个目录不是必须的,但是如果 webapp 需要第三方的 jar 包的话,这个 jar 包需要放到这个目录下边第五步:在WEB-INF 目录下新建一个文件:web.xml

这个文件是必须要有的,名字必须一模一样,这个 web.xml 文件 就是配置文件,在这个配置文件中 描述了 Servlet 与 路径之间的关系。【可以从其他webapp中拷贝这个文件,最好别手写】






第六步:编写一个 java 小程序,这个程序必须要实现 Servlet 接口

Servlet  接口 属于是 JavaEE中的规范了,并不在JDK中。Tomcat 也需要实现Servlet 规范。所以在Tomcat 中也实现了Servlet 接口。

在Tomcat 的lib 目录下有这个servlet-api.jar 包,解压之后你会在 Javaax-Servlet 目录下看到有 Servlet .class。这个完整的类名是:jakarta.serverlet 【自从javaEE9 之后改成 :jakarta】编写 这个 java小程序,在哪里写都可以,但是需要将编译之后的 字节码文件放到 classes目录下第七步:编辑配置文件,让 请求路径 和 Servlet 类名能够匹配上




	
	
  
	javajava
	
	完整包名.类名
  

	
  
    
	javajava
	
    
	/a/b/c/d
  
  

地址栏上的 url 要与 web.xml 中 的路径保持一致。

http://127.0.0.1:8080/crm//a/b/c/d

 地址栏上的url 与 的区别就是:地址栏上的 url 带项目名 :/crm

 如何使用集成开发工具开发Servlet【IDEA】

创建工程,按下图直接点OK即可.创建完之后,IDEA 会自动生成一个符合Servlet 规范的目录webapp的目录结构注意:在IDEA生成的目录中有一个 web 目录,它就是webapp的根

   

编写Servlet之前先把 Tomcat 中的 jar 包引进来

File ——Project Structure   将类库引进模块中在WEB-INF 目录下新建一个 lib 子目录,将连接数据库的jar包引进来

实现 Servlet 中的 5 个方法,在 service() 方法中编写代码
public class StudentServlet implements Servlet {
    @Override
    public void init(ServletConfig servletConfig) throws ServletException {

    }

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

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

        //设置相应内容类型
        servletResponse.setContentType("text/html");
        //打印到浏览器
        PrintWriter writer = servletResponse.getWriter();
        //连接数据库
        Connection conn = null;
        PreparedStatement ps = null;
        ResultSet rs = null;

        try {
            Class.forName("com.mysql.jdbc.Driver");
            conn = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/studentgrade", "root", "root");
            String sql = "select * from course";
            ps = conn.prepareStatement(sql);
            rs = ps.executeQuery();
            //处理结果集
            while (rs.next()) {
                String cno = rs.getString("cno");
                String cname = rs.getString("cname");
                String classHour = rs.getString("classHour");
                //打印
                writer.print(cno + "," + cname + "," + classHour + "
"); } } catch (Exception e) { e.printStackTrace(); } finally { //释放资源 if (rs != null) { try { rs.close(); } catch (SQLException e) { e.printStackTrace(); } } if (ps != null) { try { ps.close(); } catch (SQLException e) { e.printStackTrace(); } } if (conn != null) { try { conn.close(); } catch (SQLException e) { e.printStackTrace(); } } } } @Override public String getServletInfo() { return null; } @Override public void destroy() { } }

编辑配置文件 web.xml



    
        StudentList
        
        yangzhaoguang.servlet.StudentServlet
    
    
        StudentList
        
        /servlet/Student
    

在 webapp 中新建 HTML 网页,注意:不能在WEB-INF 中创建




    
    Title



    StudentList

部署Tomcat 

 

 部署完成后就启动Tomcat 服务器,在地址栏上输入

​ http://localhost:8080/xmm/servlet/Student ​

 最终将数据库中的内容成功的显示到了页面上。

以下是  Tomcat 部署的配置信息

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5707058.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-18
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存