一、代码的分层
1、概述
一个好的层次划分不仅可以能使代码结构更加清楚,还可以使项目分工更加明确,可读性大大提升,跟回家有利于后期的维护和升级。从另一个角度来看,好的代码分层架构,应该使可以很好的匹配上单一职责原则的。这样就可以降低层与层之间的依赖,还能最大承兑的复用各层的逻辑。
2、分层的好处
高内聚:分层的设计可以简化系统设计,让不同的层专注做某一模块的事
低耦合:层与层之间通过接口或API来交互,依赖方不用知道被依赖方的细节
复用:分层之后可以做到很高的复用
扩展性:分层架构可以让我们更容易做横向扩展
如果系统没有分层,当业务规模增加或流量增大时我们只能针对整体系统来做扩展。分层之后可以很方便的把一些模块抽离出来,独立成一个系统。
3、建包
我们需要建三个包,分别是:bean、dao、util
dao层(数据访问层)这里与数据库进行数据的访问,service则是业务逻辑层,与数据访问层进行数据的交互,而controller则是控制层对前端的请求进行处理和响应。
bean包(实体类)里面都是实体类,更加方便的对数据进行操作。
uitl包(工具包)则是对经常用到的方法 进行封装
二、代码中易出现的问题:
中文乱码问题
中文乱码就是值在请求信息或者响应信息中包含的中文字符不能正常显示。产生原因无非就是客户端与服务器采用的编码方式不同导致的。
根据请求方式的不同,请求一般可以被分为两种:GET请求和POST请求,
POST请求
乱码的原因:POST 提交的数据在请求体中,其所使用的编码格式时页面一致(即utf-8)。request 对象接收到数据之后,会将数据放到request缓冲区,缓冲区的默认字符集是SO-8859-1(该字符集不支持中文),两者使用的字符集不一致导致乱码。
解决方案:在获取请求参数之前设置request缓冲区字符集为utf-8。
// 设置获取数据的格式
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
GET请求和POST请求的区别:
1、 get是从服务器上获取数据,post是向服务器传送数据。
2、 get请求时通过URL直接请求数据,数据信息可以在URL中直接看到,比如浏览器访问;而post请求是放在请求头中的,用户无法直接看到。
所以一般不会使用GET请求
三、首页的编写
在web项目下建一个index.jsp项目,用来编写首页
我在首页设置两个超链接实现页面跳转,分别指向登录页面和注册页面。
如图下所示:
实现代码如下 :
<html>
<head>
<title>Java Web</title>
</head>
<body>
<a href="Login.jsp"><h2>去登录</h2></a>
<a href="Enroll.jsp"><h2>去注册</h2></a>
</body>
</html>
四、前端登录页面的编写
在登录页面中我们需要用到JDBC连接数据库进行数据查询操作(判断用户输入的账号密码是否正确)
首先我们在web项目下建一个Login.jsp项目,用来编写登录页面
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>登陆页面</title>
</head>
<body>
<h1>登陆页面</h1>
<h2>欢迎学习WEB!</h2>
<form action="login" method="post">
账号:<input type="text" name="username" value=""> <br>
密码:<input type="password" name="password" value=""> <br>
<input type="submit" value="登录">
<a href="register.jsp">没有账号?点击注册</a>
</form>
</body>
</html>
五、前端注册页面的编写
在注册页面中我们需要用到JDBC连接数据库进行数据的添加操作(通过servlet获取浏览器发出请求中的数据添加到数据库中)
在实现添加数据之前我们先在web项目下建一个Enroll.jsp项目
实现注册页面的代码如下:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>注册页面</title>
</head>
<body>
<h1>注册页面</h1>
<form action="register" method="post">
账号:<input type="text" name="username" value=""> <br>
密码:<input type="password" name="password" value=""> <br>
再次输入密码:<input type="password" name="password" value=""> <br>
手机号:<input type="text" name="phone" value=""> <br>
地址:<input type="text" name="address" value=""> <br>
<input type="submit" value="注册">
<a href="login.jsp">已有账号?点击登录</a>
</form>
</body>
</html>
六、登录成功首页的编写
<%@ page import="java.util.List" %>
<%@ page import="com.yi.bean.Goods" %><%--
Created by IntelliJ IDEA.
User: 一场零
Date: 2023/2/16
Time: 12:21
To change this template use File | Settings | File Templates