java web(二)

配置完环境变量之后,就开始了正式的开发。

  1. 新建一个dynamic web project项目,Dynamic web module version选择2.5,就可以生成一个包含web.xml文件的动态web项目。
  2. 先写一个继承自HttpServlet的类,来重写service方法
public class ListEmp extends HttpServlet {

    @Override
    protected void service(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        //设置编码方式
        response.setContentType("text/html;charset=utf-8");
        PrintWriter out = response.getWriter();

        //连接数据库
        Connection conn = null;
        PreparedStatement perstat = null;
        ResultSet rs = null;

        try {
            Class.forName("com.mysql.jdbc.Driver");
            conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/mydata",
                    "root", "root");
            perstat = conn.prepareStatement("SELECT * FROM t_emp");
            rs = perstat.executeQuery();

            out.println("<html><head></head><body style='font-size: 30px'>");
            out.println("<table border='1' cellspacing='0' cellpadding='0' width='600px'>");
            out.println("<caption>员工信息</caption>");
            out.println("<tr><td>编号</td><td>姓名</td><td>薪水</td><td>年龄</td><td>操作</td>");
            while(rs.next()){
                int id = rs.getInt("id");
                String name = rs.getString("name");
                String salary = rs.getString("salary");
                String age = rs.getString("age");

                out.println("<tr>");
                out.println("<td>"+id+"</td>");
                out.println("<td>"+name+"</td>");
                out.println("<td>"+salary+"</td>");
                out.println("<td>"+age+"</td>");
                out.println("<td><a href='del?id="+id+"'onclick=\"return confirm"
                        + "('是否确定删除"+name+"');\">删除</a>");
                out.println("<a href='load?id="+id+"'>修改</a></td>");
                out.println("</tr>");
            }
            out.println("</table></body></html>");
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
            out.println("系统异常");
        }finally{
            if(conn != null){
                out.close();
                try {
                    conn.close();
                } catch (SQLException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
        }
    }

}

以上就是servlet操作类。
为了避免乱码,我们将request和response都设为以utf8编码的格式

//设置编码方式
requset.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=utf-8");

3.写完操作类后,去web.xml来修改内容,让servlet能够顺利的找到资源

<!-- 查询员工信息 -->
  <servlet>
    <servlet-name>listEmp</servlet-name>
    <servlet-class>empManage.ListEmp</servlet-class>
  </servlet>
<!-- list -->
  <servlet-mapping>
    <servlet-name>listEmp</servlet-name>
    <url-pattern>/list</url-pattern>
  </servlet-mapping>

此时可以看到:
<servlet-mapping>中的<url-pattern>属性其实就是网页的后缀,也就是在浏览器地址栏中输入的地址。
输入地址匹配后,根据<servlet-mapping>中的<servlet-name>属性内容到<servlet>相应属性中寻找其对应的<servlet-class>也就是本网页对应的操作类。

项目部署后,在浏览器输入http://localhost:8080/empManage/list即可了

链接是我写的一个增删改查员工信息的项目,请点击
本地部署后输入http://localhost:8080/empManage/addEmp.html可查看结果。


以下是对github上挂的那个项目的小笔记:

list页面是为了显示所有的员工信息以及删除、修改等操作的,所以在PrintWriter中要输出很多html代码。请关注这一段代码:

out.println("<td><a href='del?id="+id+"'onclick=\"return confirm"
                        + "('是否确定删除"+name+"');\">删除</a>");
out.println("<a href='load?id="+id+"'>修改</a></td>");

可以看到,在<a href>属性中,有"<a href='load?id=xxx'>修改</a>"这种属性,这个按钮点击之后,就会将页面导向到/load页面。那么这个页面的对应类在哪里呢?请从web.xml中寻找。

  <!-- 加载员工 -->
  <servlet>
    <servlet-name>loadEmp</servlet-name>
    <servlet-class>empManage.LoadEmpInfo</servlet-class>
  </servlet>
  <!-- load -->
  <servlet-mapping>
    <servlet-name>loadEmp</servlet-name>
    <url-pattern>/load</url-pattern>
  </servlet-mapping>

对,就是这么简单。

比如进行了删除操作之后,我们想要立即看到结果,那该怎么办呢?此时我们用到了重定向。
请看DelEmp类,操作完成之后有这么一句代码:

//重定向
response.sendRedirect("list");

这句代码将本页面重新定向至/list页面,同样对应的操作类要在web.xml中寻找。

1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值