老师怎么回事

来源:3-3 综合训练-实现新增员工功能

SomnusL

2020-04-02 04:04:47

醉了,运行一直是405没有实现get。我们用的是post啊

package employee;


public class Employee {

    private Integer empno;

    private String ename;

    private String department;

    private String job;

    private Float salary;

    

    

    

public Employee(Integer empno, String ename, String department, String job, Float salary) {

this.empno = empno;

this.ename = ename;

this.department = department;

this.job = job;

this.salary = salary;

}

public Integer getEmpno() {

return empno;

}

public void setEmpno(Integer empno) {

this.empno = empno;

}

public String getEname() {

return ename;

}

public void setEname(String ename) {

this.ename = ename;

}

public String getDepartment() {

return department;

}

public void setDepartment(String department) {

this.department = department;

}

public String getJob() {

return job;

}

public void setJob(String job) {

this.job = job;

}

public Float getSalary() {

return salary;

}

public void setSalary(Float salary) {

this.salary = salary;

}

    

    

}

package employee;


import java.io.IOException;

import java.util.List;


import javax.servlet.ServletContext;

import javax.servlet.ServletException;

import javax.servlet.annotation.WebServlet;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;


/**

 * Servlet implementation class CreateServlet

 */

@WebServlet("/CreateServlet")

public class CreateServlet extends HttpServlet {

private static final long serialVersionUID = 1L;

       

    /**

     * @see HttpServlet#HttpServlet()

     */

    public CreateServlet() {

        super();

        // TODO Auto-generated constructor stub

    }


/**

* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)

*/

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

request.setCharacterEncoding("UTF-8");

String empno=request.getParameter("empno");

String ename=request.getParameter("ename");

String department=request.getParameter("departemnt");

String job=request.getParameter("job");

String salary=request.getParameter("salary");

System.out.println(empno);

Employee emp =new Employee(Integer.parseInt(empno),ename, department,job,Float.parseFloat(salary));

ServletContext context =request.getServletContext();

List employees=(List)context.getAttribute("employees");

employees.add(emp);

context.setAttribute("employees", employees);

request.getRequestDispatcher("/employee.jsp").forward(request, response);

}


}

<%@ page language="java" contentType="text/html; charset=utf-8"

    pageEncoding="utf-8"%>

 <%@ taglib uri = "http://java.sun.com/jsp/jstl/core" prefix = "c"%>

  <%@ taglib uri = "http://java.sun.com/jsp/jstl/fmt" prefix = "fmt"%>

<!DOCTYPE html>

<html>

<head>

    <meta charset="UTF-8">

    <meta name="viewport" content="width=device-width,initial-scale=1">

    <title>员工列表</title>

    <link href="css/bootstrap.css" type="text/css" rel="stylesheet"></link>

    

    <script type="text/javascript" src="js/jquery-1.11.1.min.js"></script>

    <script type="text/javascript" src="js/bootstrap.js"></script>


    <style type="text/css">

        .pagination {

            margin: 0px

        }


        .pagination > li > a, .pagination > li > span {

            margin: 0 5px;

            border: 1px solid #dddddd;

        }


        .glyphicon {

            margin-right: 3px;

        }


        .form-control[readonly] {

            cursor: pointer;

            background-color: white;

        }

        #dlgPhoto .modal-body{

            text-align: center;

        }

        .preview{


            max-width: 500px;

        }

    </style>

    <script>

        $(function () {

            

            $("#btnAdd").click(function () {

                $('#dlgForm').modal()

            });

        })



    </script>

</head>

<body>


<div class="container">

    <div class="row">

        <h1 style="text-align: center">IMOOC员工信息表</h1>

        <div class="panel panel-default">

            <div class="clearfix panel-heading ">

                <div class="input-group" style="width: 500px;">

                    <button class="btn btn-primary" id="btnAdd"><span class="glyphicon glyphicon-zoom-in"></span>新增

                    </button>

                </div>

            </div>


            <table class="table table-bordered table-hover">

                <thead>

                <tr>

                    <th>序号</th>

                    <th>员工编号</th>

                    <th>姓名</th>

                    <th>部门</th>

                    <th>职务</th>

                    <th>工资</th>

                    <th>&nbsp;</th>

                </tr>

                </thead>

                <tbody>

                <c:forEach items="${applicationScope.employees }" var="emp" varStatus="idx">

                <tr>

                    <td>${idx.index+1 }</td>

                    <td>${emp.empno }</td>

                    <td>${emp.ename }</td>

                    <td>${emp.department }</td>

                    <td>${emp.job }</td>

                    <td style="color: red;font-weight: bold">¥<fmt:formatNumber value="${emp.salary }" pattern="0,000.00"></fmt:formatNumber></td>                   

                </tr>

                </c:forEach>

                </tbody>

            </table>

        </div>

    </div>

</div>


<!-- 表单 -->

<div class="modal fade" tabindex="-1" role="dialog" id="dlgForm">

    <div class="modal-dialog" role="document">

        <div class="modal-content">

            <div class="modal-header">

                <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span>

                </button>

                <h4 class="modal-title">新增员工</h4>

            </div>

            <div class="modal-body">

                <form action="/employeePro/CreateServlet" method="post" >

                    <div class="form-group">

                        <label for="empno">员工编号</label>

                        <input type="text" name="empno" class="form-control" id="empno" placeholder="请输入员工编号">

                    </div>

                    <div class="form-group">

                        <label for="ename">员工姓名</label>

                        <input type="text" name="ename" class="form-control" id="ename" placeholder="请输入员工姓名">

                    </div>

                    <div class="form-group">

                        <label>部门</label>

                        <select id="dname" name="department" class="form-control">

                            <option selected="selected">请选择部门</option>

                            <option value="市场部">市场部</option>

                            <option value="研发部">研发部</option>

                        <option value="后勤部">后勤部</option>

                        </select>

                    </div>


                    <div class="form-group">

                        <label>职务</label>

                        <input type="text" name="job" class="form-control" id="sal" placeholder="请输入职务">

                    </div>


                    <div class="form-group">

                        <label for="sal">工资</label>

                        <input type="text" name="salary" class="form-control" id="sal" placeholder="请输入工资">

                    </div>


                    <div class="form-group" style="text-align: center;">

                        <button type="submit" class="btn btn-primary">保存</button>

                    </div>

                </form>

            </div>


        </div><!-- /.modal-content -->

    </div><!-- /.modal-dialog -->

</div><!-- /.modal -->



</body>

</html>

http://img.mukewang.com/climg/5e84f35f09f2cf3311010439.jpg

第二 就算我用get实现,把jsp和createServlet改成get方法还是报错类型转换的问题又怎么解决

http://img.mukewang.com/climg/5e84f3d8094c805907910397.jpg


写回答

2回答

好帮手慕阿慧

2020-04-02

同学你好,

1、get方式http://localhost:8080/employeePro/CreateServlet会报405错误,是因为CreateServelt中只有doPost方法,没有doGet方法。

访问http://localhost:8080/employeePro/CreateServlet,浏览器默认是以get方式访问后端的。

2、新增的员工编号empno应该是数字如100,否则创建Employee对象的时候Integer.parseInt(empno)会因转换失败而报错。

3、代码中有一处拼写错误,应该将departemnt改为department。

修改如下图:

http://img.mukewang.com/climg/5e857bb009c0d77605030060.jpg

4、建议对employees判断一下是否为空。避免报NullException异常。

修改如下图:

http://img.mukewang.com/climg/5e857be109e2684a06220115.jpg

5、不建议表单的action中包含项目访问的名称如employeePro。

修改如下图:

http://img.mukewang.com/climg/5e857c1e091fb39a00000000.jpg

6、访问http://localhost:8080/employeePro/employee.jsp   ,新增员工。如下图:

http://img.mukewang.com/climg/5e857c6409b8900813570412.jpg

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!

0

SomnusL

提问者

2020-04-02

老师不是啊。我这个写的完全是按照视频里老师写的啊。为什么老师没有doGet也能运行?所以我要怎么改才能让没有doGet也能运行?第二就是就算我用doGet来写 启动浏览器的时候就报错500的类型转换问题了,并不是在添加的时候才报错啊。

0

0 学习 · 9666 问题

查看课程