卷妹的成长日记之javaweb day9

举报
京与旧铺 发表于 2022/08/31 21:04:48 2022/08/31
【摘要】 卷妹的成长日记之javaweb day9👩‍💻博客主页:京与旧铺的博客主页✨欢迎关注🖱点赞🎀收藏⭐留言✒🔮本文由京与旧铺原创,csdn首发!😘系列专栏:java学习👕参考网站:动力节点💻首发时间:🎞2022年8月23日🎠🎨你做三四月的事,八九月就会有答案,一起加油吧🀄如果觉得博主的文章还不错的话,请三连支持一下博主哦🎧最后的话,作者是一个新人,在很多方面还做的不好,...

卷妹的成长日记之javaweb day9

👩‍💻博客主页:京与旧铺的博客主页

✨欢迎关注🖱点赞🎀收藏⭐留言✒

🔮本文由京与旧铺原创,csdn首发!

😘系列专栏:java学习

👕参考网站:动力节点

💻首发时间:🎞2022年8月23日🎠

🎨你做三四月的事,八九月就会有答案,一起加油吧

🀄如果觉得博主的文章还不错的话,请三连支持一下博主哦

🎧最后的话,作者是一个新人,在很多方面还做的不好,欢迎大佬指正,一起学习哦,冲冲冲

💬推荐一款模拟面试、刷题神器👉点击进入网站

🛒导航小助手🎪

    • 我们应该怎么去实现一个功能呢?

      • 建议:你可以从后端往前端一步一步写。也可以从前端一步一步往后端写。都可以。但是千万要记住不要想起来什么写什么。你写代码的过程最好是程序的执行过程。也就是说:程序执行到哪里,你就写哪里。这样一个顺序流下来之后,基本上不会出现什么错误、意外。

      • 从哪里开始?

        • 假设从前端开始,那么一定是从用户点击按钮那里开始的。

    • 第一:先修改前端页面的超链接,因为用户先点击的就是这个超链接。

      • <a href="/oa/dept/list">查看部门列表</a>
    • 第二:编写web.xml文件

      • <servlet>
            <servlet-name>list</servlet-name>
            <servlet-class>com.bjpowernode.oa.web.action.DeptListServlet</servlet-class>
        </servlet>
        <servlet-mapping>
            <servlet-name>list</servlet-name>
            <!--web.xml文件中的这个路径也是以“/”开始的,但是不需要加项目名-->
            <url-pattern>/dept/list</url-pattern>
        </servlet-mapping>
    • 第三:编写DeptListServlet类继承HttpServlet类。然后重写doGet方法。

      • package com.bjpowernode.oa.web.action;
        ​
        import jakarta.servlet.ServletException;
        import jakarta.servlet.http.HttpServlet;
        import jakarta.servlet.http.HttpServletRequest;
        import jakarta.servlet.http.HttpServletResponse;
        ​
        import java.io.IOException;
        ​
        public class DeptListServlet extends HttpServlet {
            @Override
            protected void doGet(HttpServletRequest request, HttpServletResponse response)
                    throws ServletException, IOException {
            }
        }
    • 第四:在DeptListServlet类的doGet方法中连接数据库,查询所有的部门,动态的展示部门列表页面.

      • 分析list.html页面中哪部分是固定死的,哪部分是需要动态展示的。

      • list.html页面中的内容所有的双引号要替换成单引号,因为out.print("")这里有一个双引号,容易冲突。

      • 现在写完这个功能之后,你会有一种感觉,感觉开发很繁琐,只使用servlet写代码太繁琐了。

      • while(rs.next()){
            String deptno = rs.getString("a");
            String dname = rs.getString("dname");
            String loc = rs.getString("loc");
        ​
            out.print("         <tr>");
            out.print("             <td>"+(++i)+"</td>");
            out.print("             <td>"+deptno+"</td>");
            out.print("             <td>"+dname+"</td>");
            out.print("             <td>");
            out.print("                 <a href=''>删除</a>");
            out.print("                 <a href='edit.html'>修改</a>");
            out.print("                 <a href='detail.html'>详情</a>");
            out.print("             </td>");
            out.print("         </tr>");
        }
  • 第六步:查看部门详情。

    • 建议:从前端往后端一步一步实现。首先要考虑的是,用户点击的是什么?用户点击的东西在哪里?

      • 一定要先找到用户点的“详情”在哪里。找了半天,终于在后端的java程序中找到了

        • <a href='写一个路径'>详情</a>
        • 详情 是需要连接数据库的,所以这个超链接点击之后也是需要执行一段java代码的。所以要将这个超链接的路径修改一下。

        • 注意:修改路径之后,这个路径是需要加项目名的。"/oa/dept/detail"

      • 技巧:

        • out.print("<a href='"+contextPath+"/dept/detail?deptno="+deptno+"'>详情</a>");
        • 重点:向服务器提交数据的格式:uri?name=value&name=value&name=value&name=value

        • 这里的问号,必须是英文的问号。不能中文的问号。

    • 解决404的问题。写web.xml文件。

      • <servlet>
            <servlet-name>detail</servlet-name>
            <servlet-class>com.bjpowernode.oa.web.action.DeptDetailServlet</servlet-class>
        </servlet>
        <servlet-mapping>
            <servlet-name>detail</servlet-name>
            <url-pattern>/dept/detail</url-pattern>
        </servlet-mapping>
    • 编写一个类:DeptDetailServlet继承HttpServlet,重写doGet方法。

      • package com.bjpowernode.oa.web.action;
        ​
        import jakarta.servlet.ServletException;
        import jakarta.servlet.http.HttpServlet;
        import jakarta.servlet.http.HttpServletRequest;
        import jakarta.servlet.http.HttpServletResponse;
        ​
        import java.io.IOException;
        ​
        public class DeptDetailServlet extends HttpServlet {
            @Override
            protected void doGet(HttpServletRequest request, HttpServletResponse response)
                    throws ServletException, IOException {
                //中文思路(思路来源于:你要做什么?目标:查看部门详细信息。)
                // 第一步:获取部门编号
                // 第二步:根据部门编号查询数据库,获取该部门编号对应的部门信息。
                // 第三步:将部门信息响应到浏览器上。(显示一个详情。)
            }
        }
    • 在doGet方法当中:连接数据库,根据部门编号查询该部门的信息。动态展示部门详情页。

  • 第七步:删除部门

    • 怎么开始?从哪里开始?从前端页面开始,用户点击删除按钮的时候,应该提示用户是否删除。因为删除这个动作是比较危险的。任何系统在进行删除操作之前,是必须要提示用户的,因为这个删除的动作有可能是用户误操作。(在前端页面上写JS代码,来提示用户是否删除。)

      • <a href="javascript:void(0)" onclick="del(30)" >删除</a>
        <script type="text/javascript">
            function del(dno){
                if(window.confirm("亲,删了不可恢复哦!")){
                    document.location.href = "/oa/dept/delete?deptno=" + dno;
                }
            }
        </script>
    • 以上的前端程序要写到后端的java代码当中:

      • DeptListServlet类的doGet方法当中,使用out.print()方法,将以上的前端代码输出到浏览器上。

    • 解决404的问题:

      • http://localhost:8080/oa/dept/delete?deptno=30

      • web.xml文件

        • <servlet>
              <servlet-name>delete</servlet-name>
              <servlet-class>com.bjpowernode.oa.web.action.DeptDelServlet</servlet-class>
          </servlet>
          <servlet-mapping>
              <servlet-name>delete</servlet-name>
              <url-pattern>/dept/delete</url-pattern>
          </servlet-mapping>
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。