首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >servlet返回空白页

servlet返回空白页
EN

Stack Overflow用户
提问于 2014-12-17 12:43:54
回答 3查看 7.4K关注 0票数 2

我正在用eclipse在servlet..using tomcat 7中创建一个注册页面,它返回空白页,我尝试了可用的步骤,但是没有。请帮忙..。

这里是JSP页面

代码语言:javascript
复制
<form method="post" action="mbregistrationservlet">
First Name: <input type=text name=firstfame><br>
Last Name: <input type=text name=lastname></br>
Gender: <input type="radio" name="gender" Value="Male" checked>Male
<input type="radio" name="Gender" Value="Female">Female</br>
E-mail: <input type="email" name="email"><br>
Password:<input type="password" name="password"><br>
Security Question<select name="securityquestion">
                <option value="Name of your first pet">Name of your first pet</option>
                <option value="Name of your first byke">Name of your first byke</option>
                <option value="Name of your first car">Name of your first car</option>
                <option value="Name of your first school">Name of your first school</option>
                <option value="Name of your first GF/BF">Name of your first GF/BF</option>
            </select><br>
Answer: <input type="text" name="answer"><br>
Telephone:<input type="text" name="telephone"><br>
Address:<input type="text" name="address"><br>
City:<input type="text" name="city"><br>
State:<input type="text" name="state"><br>
Country:<input type="text" name="country"><br>
 <input type="submit" value="suuubmit" name="Submit"> 
</form>

Servlet页面

代码语言:javascript
复制
public class mbregistrationservlet extends HttpServlet {
private static final long serialVersionUID = 1L;
public static boolean register(String firstname, String lastname, String gender,String email, String password, String securityquestion, String answer, String telephone, String address, String city, String state, String country) throws IOException
{
HttpServletResponse response = null;
    //response.setContentType("text/html"); 
    PrintWriter out = response.getWriter();

    boolean x =false;
    try{
        /*dbconn obj=new dbconn();*/
        DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
        Connection con = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe","******","*******");
        PreparedStatement ps = con.prepareStatement("insert into mbregistration  values(?,?,?,?,?,?,?,?,?,?,?,?)");
        ps.setString(1,firstname);
        ps.setString(2,lastname);
        ps.setString(3,gender);
        ps.setString(4, email);
        ps.setString(5, password);
        ps.setString(6, securityquestion);
        ps.setString(7, answer);
        ps.setString(8, telephone);
        ps.setString(9, address);
        ps.setString(10,city);
        ps.setString(11,state);
        ps.setString(12,country);
       int i = ps.executeUpdate();
        if (i>0){
            x=true;
        }
        out.print("registered succcessfully");
        //out.close();

    }
    catch(Exception e) 
    {
        out.print("error");
        //out.close();
    }
    return x;
}

XML页面

代码语言:javascript
复制
<display-name>MobileWorld</display-name>
   <welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
 </welcome-file-list>
  <servlet>
<description></description>
<display-name>mbloginservlet</display-name>
<servlet-name>mbloginservlet</servlet-name>
<servlet-class>mbworld.mbloginservlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>mbloginservlet</servlet-name>
<url-pattern>/mbloginservlet</url-pattern>
</servlet-mapping>
<servlet>
<description></description>
<display-name>Validate</display-name>
<servlet-name>Validate</servlet-name>
<servlet-class>mbworld.Validate</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Validate</servlet-name>
<url-pattern>/Validate</url-pattern>
</servlet-mapping>
<servlet>
<description></description>
<display-name>success</display-name>
<servlet-name>success</servlet-name>
<servlet-class>mbworld.success</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>success</servlet-name>
<url-pattern>/success</url-pattern>
</servlet-mapping>
<servlet>
<description></description>
<display-name>mbregistrationservlet</display-name>
<servlet-name>mbregistrationservlet</servlet-name>
<servlet-class>mbworld.mbregistrationservlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>mbregistrationservlet</servlet-name>
<url-pattern>/mbregistrationservlet</url-pattern>
</servlet-mapping>

如果我做错了什么,请告诉我.

EN

回答 3

Stack Overflow用户

发布于 2017-03-16 09:53:50

首先,您必须用doPost方法编写代码,第二件事是,如果您在RequestDispatcher rd=request.getRequestDispatcher("Name of page you want to redirect");之后没有使用rd.forward(request,response),那么在单击submit按钮之后,它将是一个空白页。

所以应该是:

代码语言:javascript
复制
RequestDispatcher rd=request.getRequestDispatcher("Welcome");
rd.forward(request,response);
票数 3
EN

Stack Overflow用户

发布于 2014-12-17 12:48:58

将您的方法名更改为doPost,而不是注册(没有静态关键字),并使用http请求访问表单字段使用getParameter api。所以看起来:

代码语言:javascript
复制
 public class mbregistrationservlet extends HttpServlet {
      public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
     String firstName = request.getParameter("firstfame");

     //and so on
 }
票数 2
EN

Stack Overflow用户

发布于 2014-12-17 12:58:06

我在servlet中没有看到一个doPost()方法,实际上在提交表单时服务方法将调用这个方法。

结构的doPost()方法

代码语言:javascript
复制
public void doPost(HttpServletRequest request, HttpServletResponse response)
                        throws ServletException, IOException 
{
// Servlet code
}

校正

  1. 您不会像register method期望的那样通过参数获取输入字段。 公共静态布尔寄存器(.) 而且这是违法的。
  2. 为了获得输入字段参数,用户Enumeration params = request.getParameterNames()将返回所有参数的枚举,并通过request.getParameterValue(params.nextElement())访问与params.nextElement()指定的输入字段对应的值。示例
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27525941

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档