2016-04-26 45 views
0

我试图插入学院名称到数据库使用bean下面的MVC模式,但每当我点击插入按钮我得到404 error。下面是代码JSP-无法使用JSP Beans插入记录

JSP文件

<%@page contentType="text/html" pageEncoding="UTF-8"%> 
<!DOCTYPE html> 
    <html> 
    <head> 
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
     <title>Practical 5</title> 
     </head> 
     <body> 
     <h1>Insert College</h1> 
      <form action="NewServlet"> 
      Enter Name<input type="text" name="collegeName"><br> 
      Enter City<input type="text" name="collegeCity"><br> 
      Enter Year<input type="number" name="collegeYear"><br> 
      Enter Fees<input type="number" name="collegeFees"><br> 
     <input type="submit" name="Insert" value="Insert"> 

    </form> 
    <% 
    String msg=(String)request.getAttribute("msg"); 

    %> 
    <h2><%=msg%></h2> 
</body> 
</html> 

CollegeBean.java

package college; 

public class CollegeBean { 

public String cname; 
public String ccity; 
public int year; 
public float fees; 

public String getCname() { 
    return cname; 
} 

public void setCname(String cname) { 
    this.cname = cname; 
} 

public String getCcity() { 
    return ccity; 
} 

public void setCcity(String ccity) { 
    this.ccity = ccity; 
} 

public int getYear() { 
    return year; 
} 

public void setYear(int year) { 
    this.year = year; 
} 

public float getFees() { 
    return fees; 
} 

public void setFees(float fees) { 
    this.fees = fees; 
} 


} 

CollegeDB.java

package college; 
    import java.sql.*; 
    public class CollegeDB { 
public String insertOperation(CollegeBean collegeBeanObj) throws ClassNotFoundException,SQLException 
{ 
    Class.forName("com.mysql.jdbc.Driver"); 
    Connection cn= DriverManager.getConnection("jdbc:mysql://localhost/jspractical5", "root", ""); 
    Statement st= cn.createStatement(); 
    int flag= st.executeUpdate("INSERT INTO college (c_name, c_city, c_year, c_fees) VALUES('"+collegeBeanObj.getCname()+"','"+collegeBeanObj.getCcity()+"','"+collegeBeanObj.getYear()+"','"+collegeBeanObj.getFees()+"')"); 
    if (flag!=0) 
     return "Record Inserted"; 
    else 
     return "Record not inserted"; 

} 

} 

最后控制文件中的servlet来处理所有的东西

NewServlet.java

package college; 

import java.io.IOException; 
import java.io.PrintWriter; 
import java.sql.*; 
import javax.servlet.RequestDispatcher; 
import javax.servlet.ServletException; 
import javax.servlet.annotation.WebServlet; 
import javax.servlet.http.HttpServlet; 
import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 

    @WebServlet(name = "NewServlet", urlPatterns = {"/college/NewServlet"}) 
    public class NewServlet extends HttpServlet { 
    protected void processRequest(HttpServletRequest request, HttpServletResponse response) 
     throws ServletException, IOException { 
    response.setContentType("text/html;charset=UTF-8"); 
    PrintWriter out = response.getWriter(); 
    try { 
     String name=request.getParameter("name"); 
     String city=request.getParameter("city"); 
     int year=Integer.parseInt(request.getParameter("year")); 
     float fees=Integer.parseInt(request.getParameter("fees")); 

     CollegeBean collegeBeanObj= new CollegeBean(); 
     collegeBeanObj.setCname(name); 
     collegeBeanObj.setCcity(city); 
     collegeBeanObj.setYear(year); 
     collegeBeanObj.setFees(fees); 

     CollegeDB cd= new CollegeDB(); 
     String msg= cd.insertOperation(collegeBeanObj); 
     request.setAttribute("msg", msg); 
     RequestDispatcher rd= getServletContext().getRequestDispatcher("/index.jsp"); 
     rd.forward(request, response); 
    } 
    catch(Exception e) 
    { 
     out.println(e); 
    } 
} 
@Override 
protected void doGet(HttpServletRequest request, HttpServletResponse response) 
     throws ServletException, IOException { 
    processRequest(request, response); 
} 
@Override 
protected void doPost(HttpServletRequest request, HttpServletResponse response) 
     throws ServletException, IOException { 
    processRequest(request, response); 
} 

@Override 
public String getServletInfo() { 
    return "Short description"; 
} 

} 
+0

如果你是一个初学者相同的URL模式,所以尽量更好Spring MVC框架。实施HttpServlets是极端老派并容易失败。 – dit

+0

你的sevlet-config.xml和web.xml在哪里?更新你的问题。 –

回答

0

问题出在控制器中分配RequestDipatcher的那一行。

可能是index.html文件路径错误。检查文件夹结构并相应地插入路径。如果index.html位于发送请求的页面的同一目录中,则在index.html的文件路径中,删除前导'/'。

也改变了形式action属性的URL在urlPattrns定义控制器中的注释“/大学/ NewServlet”

+1

servlet和beans在大学包中,索引文件在网页文件夹中 –

+1

问题中提到的jsp页面的名称是什么?那是index.jsp吗? – Kaustav

+0

ya index.jsp页面 –