千家信息网

怎么看待Servlet和Jsp知识点

发表于:2024-11-26 作者:千家信息网编辑
千家信息网最后更新 2024年11月26日,怎么看待Servlet和Jsp知识点,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。1.首先需要一些工具:tomcat,m
千家信息网最后更新 2024年11月26日怎么看待Servlet和Jsp知识点

怎么看待Servlet和Jsp知识点,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

1.首先需要一些工具:

tomcat,mysql,Navicat For mysql,eclipse(javaee)

2.创建数据库

3.新建一个web项目

注意是Dynamic Web Project,module version选择2.5或者3.0都可以

4.部署tomcat

新建server,完成后完成以下配置,这样就能在eclipse里直接用tomcat服务器了。这里如果选择第一个的话,eclipse会自己下载一个简易版的tomcat。

5.整体把握

实现网页对数据库的查询或者新增,需要MVC开发模式,这里画了一个图,大概就是这样:

6.写代码的顺序是从下到上:pojo层---Dao层---Service层---servlet层

6.1pojo层代码编写:

写一个与数据库对应的类,包名以.pojo结尾。set get方法、构造方法、无参构造方法和toString方法都写一遍,反正alt+s自动生成。

package com.pojo;public class User {        private int uid;        private String uname;        private String pwd;        private String sex;        private int age;        private String birth;        public int getUid() {                return uid;        }        public void setUid(int uid) {                this.uid = uid;        }        public String getUname() {                return uname;        }        public void setUname(String uname) {                this.uname = uname;        }        public String getPwd() {                return pwd;        }        public void setPwd(String pwd) {                this.pwd = pwd;        }        public String getSex() {                return sex;        }        public void setSex(String sex) {                this.sex = sex;        }        public int getAge() {                return age;        }        public void setAge(int age) {                this.age = age;        }        public String getBirth() {                return birth;        }        public void setBirth(String birth) {                this.birth = birth;        }        public User(int uid, String uname, String pwd, String sex, int age, String birth) {                super();                this.uid = uid;                this.uname = uname;                this.pwd = pwd;                this.sex = sex;                this.age = age;                this.birth = birth;        }        public User() {                super();        }        @Override        public String toString() {                return "User [uid=" + uid + ", uname=" + uname + ", pwd=" + pwd + ", sex=" + sex + ", age=" + age + ", birth="                                + birth + "]";        }        }

6.2Dao层代码编写

6.2.1接口
package com.dao;import java.util.List;import com.pojo.User;public interface UserDao {        //登录        User checkUserLoginDao(String uname,String pwd);        //密码修改        int userChangePwdDao(String newPwd, int uid);        //显示所有信息        List showAllDao();                //插入用户        int userRegDao(String uname, String pwd, String sex, String age, String birth);}
6.2.2接口的实例化对象

这里以一个插入和查询的方法为例,按照基本步骤来就可以。

查询:

public User checkUserLoginDao(String uname, String pwd) {                //创建jdbc对象                Connection conn = null;                PreparedStatement ps = null;                ResultSet rs = null;                //创建实体类对象                User u = null;                try {                        //加载驱动                        Class.forName("com.mysql.jdbc.Driver");                        //获取连接                        conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test2","root","lijingjing");                        //创建sql语句                        String sql = "select * from t_user where uname=? and pwd=?";                        //创建sql对象                        ps = conn.prepareStatement(sql);                        //给占位符赋值                        ps.setString(1, uname);                        ps.setString(2, pwd);                        //ִ执行sql                        rs = ps.executeQuery();                        //遍历结果集                        while(rs.next()) {                                u = new User();                                u.setAge(rs.getInt("age"));                                u.setUid(rs.getInt("uid"));                                u.setBirth(rs.getString("birth"));                                u.setPwd(rs.getString("pwd"));                                u.setSex(rs.getString("sex"));                                u.setUname(rs.getString("uname"));                        }                } catch (Exception e) {                        e.printStackTrace();                }finally {                        try {                                rs.close();                        } catch (SQLException e) {                                // TODO Auto-generated catch block                                e.printStackTrace();                        }                        try {                                ps.close();                        } catch (SQLException e) {                                // TODO Auto-generated catch block                                e.printStackTrace();                        }                        try {                                conn.close();                        } catch (SQLException e) {                                // TODO Auto-generated catch block                                e.printStackTrace();                        }                }                                return u;        }

插入的代码流程和查询大同小异,不同在于不需要rs结果集,返回值为int类型(表示受影响的行数),index = ps.executeUpdate();

另外为保证中文能够在数据库中正常显示,在加载驱动这一步时,数据库后面要加上?useUnicode=true&characterEncoding=UTF8

conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test2?useUnicode=true&characterEncoding=UTF8","root","lijingjing");

这样数据访问层就写完了。

6.3Service层代码编写

6.3.1接口

一般这一层会对从Dao层取到的数据进行业务逻辑处理,这里只是简单的返回。

package com.service;import java.util.List;import com.pojo.User;public interface UserService {                //登录        User checkUserLoginService(String uname,String pwd);        //修改密码        int userChangePwdService(String newPwd, int uid);        //展示所有用户信息        List showAllService();        //注册        void userRegService(String uname, String pwd, String sex, String age, String birth);}
6.3.2接口的实例化对象

继承上面的接口,实现其方法,创建Dao层对象,返回即可,代码不上了。

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注行业资讯频道,感谢您对的支持。

0