当前位置: 首页 > wzjs >正文

容县建设工程交易中心网站sem推广软件选哪家

容县建设工程交易中心网站,sem推广软件选哪家,乐陵德州seo公司,手机好在百度做网站吗一、创建web项目 这里选择创建Jakarta EEweb项目 注意: Jakarta EE只有在IDEA2020.2版本之后才有。 Tomcat最好选择8.5或者9.0,这两个版本比较稳定。 启动服务器,看看是否能正常启动。 二、创建相关的包 三、编写登录页面 login.jsp…

一、创建web项目 

这里选择创建Jakarta EEweb项目 

注意: Jakarta EE只有在IDEA2020.2版本之后才有。

 Tomcat最好选择8.5或者9.0,这两个版本比较稳定。

 启动服务器,看看是否能正常启动

 

 二、创建相关的包

 三、编写登录页面

login.jsp代码如下:
 

<%--Created by IntelliJ IDEA.User: lenovoDate: 2025/2/15Time: 10:14To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>登录页面</title><style>.formBox{border: 1px solid #e82222;position: absolute;top: 100px;right: 150px;}.formBox>.titleBox{color: #db6414;font-weight: bold;text-align: center;}.itemBox{border: 1px solid aquamarine;margin: 20px 10px;}.itemBox>label{width: 60px;display: inline-block;background-color: #c9a882;}.itemBox>input{border: none;outline: none;font-size: 18px;background-color: lightgrey;}.btnBox{text-align: center;}.btnBox>button{height: 38px;width: 70px;border: none;background-color: burlywood;border-radius: 5px;}.btnBox>button:hover{background-color: red;}</style>
</head>
<body>
<form action="/myweb3/doLogin" method="post"><div class="formBox"><div class="titleBox"><h1>小米商城</h1></div><div class="itemBox"><label>用户名:</label><input type="text" name="username"></div><div class="itemBox"><label>密码:</label><input type="password" name="password"></div><div class="btnBox"><button type="submit">login</button></div></div>
</form>
</body>
</html>

重新启动Tomcat,看是否能显示login.jsp页面

 四、创建一个mysql用户表
 

SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;-- ----------------------------
-- Table structure for user
-- ----------------------------
DROP TABLE IF EXISTS `user`;
CREATE TABLE `user`  (`id` int(11) NOT NULL,`username` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,`password` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,`nickname` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;-- ----------------------------
-- Records of user
-- ----------------------------
INSERT INTO `user` VALUES (1, 'zhangsan', '123456', '张小三');
INSERT INTO `user` VALUES (2, 'wangwu', '666666', '王小五');SET FOREIGN_KEY_CHECKS = 1;

SQL语句和结果图如上 


五、创建LoginServlet

创建登录核心执行类

@WebServlet("/doLogin")
public class LoginServlet extends HttpServlet {@Overrideprotected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {//防止出现乱码req.setCharacterEncoding("GBK");resp.setCharacterEncoding("GBK");String username = req.getParameter("username"); //和login.jsp的username一致String password = req.getParameter("password"); //和login.jsp的password一致//打印一下是否能正确获取System.out.println(username+":"+password);}
}

 

我们可以看到@WebServlet("/doLogin")这里的doLogin名称是login.jsp的form里action的名字是一致的,即提交表单时执行该类代码。

重启Tomcat并输入用户名和密码,看是否能正确在java控制台打印

六、创建User类

在bean包下创建User类,字段和格式与mysql表中的user表一致。 

 字段类型如下: 

public class User {private int id;private String username;private String password;private String nickname;public User() {}public User(int id, String username, String password, String nickname) {this.id = id;this.username = username;this.password = password;this.nickname = nickname;}//创建get和set方法public int getId() {return id;}public void setId(int id) {this.id = id;}public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}public String getNickname() {return nickname;}public void setNickname(String nickname) {this.nickname = nickname;}@Overridepublic String toString() {return "User{" +"id=" + id +", username='" + username + '\'' +", password='" + password + '\'' +", nickname='" + nickname + '\'' +'}';}
}

七、JDBC连接数据库

1、获取驱动

这里使用数据库链接池连接数据库。

首先获取Druid和mysql连接驱动。
通过网盘分享的文件:java驱动
链接: https://pan.baidu.com/s/1PkQPTsGo5OG31hrx2cYeVQ?pwd=6666 提取码: 6666 

mysql版本为5点几下载那个驱动5的,mysql8点几版本的下载那个驱动8的

 

2、将驱动放入项目中

把两个驱动添加进去 

 

可以看出已经放入项目包中 

3、创建JDBCUtil类
 

在util包下创建:

JDBCUtil具体代码如下:

public class JDBCUtil {// 数据库连接信息(换成自己的)//这里school为数据库,需要换成你的user表所在的数据库private static final String URL = "jdbc:mysql://localhost:3306/school?characterEncoding=utf-8&useSSL=false&serverTimezone=UTC";private static final String USER = "root";private static final String PASSWORD = "123456";//mysql8版本的驱动换成"com.mysql.cj.jdbc.Driver"private static final  String driverClassName="com.mysql.jdbc.Driver";//数据库连接池private static final DruidDataSource ds;private static Connection conn = null;static {ds=new DruidDataSource();//初始化的数量不能大于最大活跃数量ds.setInitialSize(3);ds.setMaxActive(5);ds.setMaxWait(3000);ds.setDriverClassName(driverClassName);ds.setUrl(URL);ds.setUsername(USER);ds.setPassword(PASSWORD);}//获取链接public static Connection getConnection() {if(conn==null){try {conn= ds.getConnection();} catch (SQLException e) {e.printStackTrace();}}return conn;}//关闭所有链接public static void closeAll(ResultSet rs, PreparedStatement ps, Connection connection){try {if(rs!=null){rs.close();}} catch (SQLException e) {e.printStackTrace();}try {if(ps!=null){ps.close();}} catch (SQLException e) {e.printStackTrace();}try {if(connection!=null){connection.close();}} catch (SQLException e) {e.printStackTrace();}}//关闭connpublic static void closeConnection(){try {conn.close();} catch (SQLException e) {throw new RuntimeException(e);}}//获取所有查询结果public static <T> List<T> selectAll(Class<T> clazz, String sql, Object... params){//创建链接Connection connection = getConnection();//创建预编译对象PreparedStatement ps = null;ResultSet rs = null;ResultSetMetaData metaData = null;List<T> list = new ArrayList<T>();try {ps=connection.prepareStatement(sql);for(int i=0;i<params.length;i++){ps.setObject(i+1,params[i]);}rs=ps.executeQuery();metaData = rs.getMetaData();int columnCount = metaData.getColumnCount();while(rs.next()){//反射创建实例对象T obj=clazz.newInstance();//列名for(int i=1;i<=columnCount;i++){String col_name = metaData.getColumnName(i);Object col_value= rs.getObject(col_name);Field field=clazz.getDeclaredField(col_name);//设置允许访问权限field.setAccessible(true);field.set(obj,col_value);}list.add(obj);}} catch (SQLException e) {e.printStackTrace();} catch (InstantiationException e) {e.printStackTrace();} catch (IllegalAccessException e) {e.printStackTrace();} catch (NoSuchFieldException e) {e.printStackTrace();}finally {closeAll(rs,ps,null);}return list;}
}

注意:

1)数据库信息换成自己的。

2)mysql 8版本的驱动为com.mysql.cj.jdbc.Driver

4、创建Test测试类看是否能连接数据库

Test类代码如下:
 

public class Test {//测试数据库是否能连接成功public static void main(String[] args) {//编写sql语句String sql1="select * from user";String sql2="select * from user where username=? and password=?";List<User> list1 = JDBCUtil.selectAll(User.class, sql1);System.out.println(list1.toString());List<User> list2 = JDBCUtil.selectAll(User.class, sql2, "zhangsan", "123456");System.out.println(list2.toString());}
}

可见成功连接数据库 

 八、创建正则表达式类

在util包下创建SysUtil类,作为验证用户输入格式的正则表达式类

SysUtil类代码如下:

public class SysUtil {//正则表达式//匹配长度在6到16个字符之间的字符串,且字符串只能包含字母、数字或下划线。public static final String Reg6_16="^\\w{6,16}$";public static final String LOGIN_DATA="loginData";public static boolean checkLoginData(String...loginData){if(loginData.length==0){return false;}for(String s:loginData){if(!s.matches(Reg6_16)){return false;}}return true;}
}

九、在WEB-INF下创建lib包,将驱动放进去

不放会页面出现500 

十、继续编写LoginServlet类
 

该类的剩余功能业务是:

1)验证用户名是否合法
2)用户和密码是否正确

 

 代码如下:

@WebServlet("/doLogin")
public class LoginServlet extends HttpServlet {@Overrideprotected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {//防止出现乱码req.setCharacterEncoding("GBK");resp.setCharacterEncoding("GBK");String username = req.getParameter("username");String password = req.getParameter("password");System.out.println(username+":"+password);if(SysUtil.checkLoginData(username,password)){List<User> list = JDBCUtil.selectAll(User.class, "select * from user where username=? and password=?", username, password);//获取该数据库中是否有该条数据User user_data=list.get(0);//判断list是否有数据if(list.size()==1){//好像有点冗余了if(username.equals(user_data.getUsername())&&password.equals(user_data.getPassword())){//将用户名和密码保存到session中,以便用户之后登录//SysUtil.LOGIN_DATA   这里取个字符串名字即可,不过这样更加规范req.getSession().setAttribute(SysUtil.LOGIN_DATA,user_data);System.out.println("验证成功");resp.getWriter().write("登录成功");return;}}}return;}
}

十一、创建success.jsp登录成功页面

其实主要业务到上面已经基本完成,如果想要再显示登录成功页面的可以继续往下看。 

1、创建success.jsp页面

2、在LoginServlet里加入下面一句代码即可

重新启动,最终页面如下:
 

这里其实使用了response的重定向,从当前页面转到其他页面。


 

http://www.dtcms.com/wzjs/597006.html

相关文章:

  • 医疗网站模版wordpress清空文章
  • 17网站一起做 佛山佛山百度提升优化
  • 做书的网站有哪些内容有什么网站可以做家装
  • 英文视频网站如何做外链化妆品网站开发
  • 企业网站建设公司公司宁波网络公司电话
  • 自适应文章网站模板图片怎么制作
  • 网站二级导航宁波行业网站建设
  • 移动端的网站南京网站建设公司 w
  • asp.ne手机触摸网站开发做app挣钱还是网站
  • 网站建设明细报价单微商城官网地址
  • 宝安营销型网站费用天津网站建设是什么
  • 有免费的微网站制作吗汕头好的建站网站
  • seo网站建设课程中国桥梁建设网站
  • 太原企业网站模板建站ui培训费用
  • 苏州瑞熙网站建设中国电力建设集团网站
  • 电子商务网站开发成本wordpress自动标签页
  • 虚拟主机可建站1个是不是只能放一个网站公司文化形象设计公司
  • 湛江网站建设低价推荐wordpress网站重定向循环
  • 宁波专业网站推广制作服务wordpress 设置关键字
  • 搜狐快站装修网站建设做简单的html网站
  • 甘肃省交通建设项目招投标中心网站seo软件排行榜前十名
  • python 快速做网站做一个安卓app多少钱
  • 营销网站有四大要素构成宁波做网站的大公司排名
  • 网站建设包括的内容网上下载的免费网站模板怎么用
  • 宜宾网站建设价格wordpress文章换行符
  • 企业网站标题优化门户网站属于什么类型的模式
  • 学做网站的书哪些好大连线上教学
  • 最好的自助建站系统聊城网站建设lchckj
  • 此网站域名三天更换seo技术推广培训
  • 大型公司建站劳力士手表网站