简体   繁体   English

在JSP Servlet中实现Java Bean

[英]Implementing a java bean into a jsp servlet

I am trying to connect my JSP servlets to a posgress database and I am currently using a java bean class which is playing the role of the middle man. 我试图将我的JSP Servlet连接到posgress数据库,并且当前正在使用Java Bean类,该类扮演中间人的角色。 I am experiencing some difficulties with making the registration form successfully store user information into the database. 在使注册表单成功将用户信息存储到数据库中时,我遇到了一些困难。 I would really appreciate if you would kindly help me out. 如果您能帮助我,我将不胜感激。

Thanks a lot in advance. 非常感谢。

JSP servlet: JSP Servlet:

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>Register here</title>
</head>
<body>
    <form method="post" action="registration.jsp">
        <center>
        <table border="1" width="30%" cellpadding="5">
            <thead>
                <tr>
                    <th colspan="2">Enter Information Here</th>
                </tr>
            </thead>
            <tbody>
                <tr>
                    <td>First Name</td>
                    <td><input type="text" name="fname" value="" /></td>
                </tr>
                <tr>
                    <td>Last Name</td>
                    <td><input type="text" name="lname" value="" /></td>
                </tr>
                <tr>
                    <td>Email</td>
                    <td><input type="text" name="email" value="" /></td>
                </tr>
                <tr>
                    <td>User Name</td>
                    <td><input type="text" name="uname" value="" /></td>
                </tr>
                <tr>
                    <td>Password</td>
                    <td><input type="password" name="pass" value="" /></td>
                </tr>
                <tr>
                    <td>Current Country</td>
                    <td><input type="text" name="country" value="" /></td>
                </tr>
                <tr>
                   <td>Current City</td>
                   <td><input type="text" name="city" value="" /></td>
                </tr>   
                <tr>
                    <td><input type="submit" value="Submit" /></td>
                    <td><input type="reset" value="Reset" /></td>
                </tr>
                <tr>
                    <td colspan="2">Already have an account? <a href="index.jsp">Login Here</a></td>
                </tr>
            </tbody>
        </table>
        </center>
    </form>
</body>

The Java Bean that I use : 我使用的Java Bean:

public class UserBean {

    private int id;
    private String username;
    private String password;
    private String email;
    private String firstName;
    private String lastName;
    private String endDate;
    private boolean validated;

    public UserBean() {
        // Empty constructor
    }

    public int getId() {
        return id;
    }

    public String getUsername() {
        return username;
    }

    public String getPassword() {
        return password;
    }

    public String getEmail() {
        return email;
    }

    public String getFirstName() {
        return firstName;
    }

    public String getLastName() {
        return lastName;
    }

    public String getEndDate() {
        return endDate;
    }

    public boolean isValidated() {
        return validated;
    }

    public void setId(int id) {
        this.id = id;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public void setFirstName(String firstName) {
        this.firstName = firstName;
    }

    public void setLastName(String lastName) {
        this.lastName = lastName;
    }

    public void setEndDate(String endDate) {
        this.endDate = endDate;
    }

    public void setValidated(boolean validated) {
        this.validated = validated;
    }
}

Your POJO JavaBean won't magically get populated with the data. 您的POJO JavaBean不会神奇地填充数据。 It has no connection to the database and no way to get or save data. 它与数据库没有连接,也无法获取或保存数据。

You need a controller that fetches data from the DB, creates model objects, and populates them with the data. 您需要一个控制器来从数据库中获取数据,创建模型对象,然后使用数据填充它们。 The controller is also responsible for saving beans 控制器还负责保存bean

You could write this yourself but it's generally better to use existing ORM frameworks like JPA2, a custom persistence provider API like Hibernate, or something like MyBatis. 您可以自己编写此代码,但是通常最好使用现有的ORM框架(例如JPA2),自定义的持久性提供程序API(例如Hibernate)或MyBatis等。 If you really want, you can hand-roll your controller with direct JDBC calls, injecting the connection from the environment, but that tends to produce a lot of boilerplate code for little benefit even with things like Spring JDBC to help smooth things over. 如果确实需要,可以通过直接的JDBC调用手动滚动控制器,从环境中注入连接,但这往往会产生很多样板代码,即使使用Spring JDBC之类的东西来帮助使事情顺利进行,也无济于事。

Some IDEs, like NetBeans and Eclipse, can even auto-generate models and controllers for you, though I've never been very happy with the results (particularly the failure to use a parent-class and generic methods and the lack of any sort of useful error handling). 某些IDE(例如NetBeans和Eclipse)甚至可以为您自动生成模型和控制器,尽管我从未对结果感到非常满意(尤其是使用父类和通用方法的失败以及缺乏任何种类的结果)有用的错误处理)。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM