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

潍坊手机网站制作自己做的图片哪个网站可以出售

潍坊手机网站制作,自己做的图片哪个网站可以出售,wordpress安装语言设置,学校门户网站建设目录 1.什么是三层架构 2.运用三层架构的目的 2.1规范代码 2.2解耦 2.3代码的复用和劳动成本的减少 3.各个层次的任务 3.1web层#xff08;表现层) 3.2service 层(业务逻辑层) 3.3dao 持久层(数据访问层) 4.结合mybatis简单实例演示 1.什么是三层架构 三层架构就是把…目录 1.什么是三层架构 2.运用三层架构的目的 2.1规范代码 2.2解耦 2.3代码的复用和劳动成本的减少 3.各个层次的任务 3.1web层表现层) 3.2service 层(业务逻辑层) 3.3dao 持久层(数据访问层) 4.结合mybatis简单实例演示 1.什么是三层架构 三层架构就是把整个软件系统分为三个层次 表现层Presentation layer业务逻辑层Business Logic Layer数据访问层Data access layer 三层架构(3-tier architecture) 通常意义上的三层架构就是将整个业务应用划分为界面层User Interface layer、业务逻辑层Business Logic Layer、数据访问层Data access layer。区分层次的目的即为了“高内聚低耦合”的思想。在软件体系架构设计中分层式结构是最常见也是最重要的一种结构。微软推荐的分层式结构一般分为三层从下至上分别为数据访问层又称为持久层、业务逻辑层又或称为领域层、表示层。 2.运用三层架构的目的 2.1规范代码 大型软件需要团队配合的时候问题就来了由于每个程序员风格不一样而开发软件大量的代码风格不统一就会造成后期调试和维护出现问题然而软件分层后每个层合理分工这样的问题便迎刃而解 2.2解耦 上一层依赖于下一层如果测试下一层没有问题那么问题就只有可能发现在本层了便于发现和改正BUG。体现了“高内聚低耦合”的思想。比如楼房是分层的我们要到哪一层楼非常方便只需在电梯里按下那个楼层的层号即可。而三层架构就好比开发的软件“楼”哪层出现Bug哪层有问题我们作为开发人员能够随时找到并修正。 各个层次分工明确将一个复杂问题简单拆分了。 2.3代码的复用和劳动成本的减少 分层的根本在于代码的复用和劳动成本的减少。分层的最理想化的结果是实现层与层之间的互不依赖的内部实现所谓的即插即用 实现高内聚、低耦合。把问题划分开来各个解决易于控制易于延展易于分配资源。 3.各个层次的任务 3.1web层表现层) 表现层可以说是距离用户最近的层主要是用于接收用户输入的数据和显示处理后用户需要的数据。一般表现为界面用户通过界面输入查询数据和得到需要的数据。 com.by.servlet servlet包接受请求控制跳转页面 3.2service 层(业务逻辑层) 业务逻辑层是处于表现层和数据访问层之间主要是从数据库中得到数据然后对数据进行逻辑处理。 com.by.serviceService接口包 com.by.service.implService接口实现类处理业务 3.3dao 持久层(数据访问层) 数据访问层是直接和数据库打交道的对数据进行“增、删、改、查”等基本的操作。 com.by.daoDao接口包 com.by.dao.impl Dao接口实现类访问数据库 4.结合mybatis简单实例演示 具体目录如图所示 首先先建立User实体层 package com.by.pojo;public class User {private Integer id;private String username;private String password;private String sex;private String address;public Integer getId() {return id;}public void setId(Integer 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 getSex() {return sex;}public void setSex(String sex) {this.sex sex;}public String getAddress() {return address;}public void setAddress(String address) {this.address address;} }再设置连接数据库db.properties jdbc.drivercom.mysql.jdbc.Driver #mysql8 #jdbc:mysql://127.0.0.1:3306/mybatis?useSSLfalseserverTimezoneAsia/Shanghai jdbc.urljdbc:mysql://127.0.0.1:3305/servlet?characterEncodingUTF-8 jdbc.usernameroot jdbc.password mybatis-config.xml: ?xml version1.0 encodingUTF-8? !DOCTYPE configuration PUBLIC -//mybatis.org//DTD Config 3.0//ENhttp://mybatis.org/dtd/mybatis-3-config.dtd configurationproperties resourcedb.properties/propertiestypeAliases!--typeAlias typecom.by.pojo.User aliasUser/typeAlias--!--批量给pojo定义别名推荐使用小写--package namecom.by.pojo//typeAliases!--使用dev环境--environments defaultdevenvironment iddev!--事务--transactionManager typeJDBC/transactionManager!--typePOOLED连接池--dataSource typePOOLED!--mysql8--!--property namedriver valuecom.mysql.cj.jdbc.Driver/property nameurl valuejdbc:mysql://127.0.0.1:3306/mybatis?useSSLfalseamp;serverTimezoneAsia/Shanghai/--property namedriver value${jdbc.driver}/property nameurl value${jdbc.url}/property nameusername value${jdbc.username}/property namepassword value${jdbc.password}//dataSource/environment/environments!--加载mapper映射文件--mappers!--直接引入映射文件--!--mapper resourcecom/by/mapper/UserMapper.xml/mapper--!--按mapper接口的名称引入映射文件要求 mapper 接口名称和 mapper 映射文件名称相同--!--mapper classcom.by.mapper.UserMapper/mapper--!--批量按mapper接口的名称引入映射文件--package namecom.by.mapper//mappers /configuration 设置公用代码MyServletContextListener package com.by.listener;import org.apache.ibatis.io.Resources; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactoryBuilder;import javax.servlet.ServletContext; import javax.servlet.ServletContextEvent; import javax.servlet.ServletContextListener; import java.io.InputStream;//作用监听servletContext对象的创建和销毁 public class MyServletContextListener implements ServletContextListener {//servletContext对象创建后会调用此方法Overridepublic void contextInitialized(ServletContextEvent sce) {try {//加载mybatis的运行环境//加载mybatis-config.xmlString resource mybatis-config.xml;InputStream inputStream Resources.getResourceAsStream(resource);//创建sqlSessionFactorySqlSessionFactory sessionFactory new SqlSessionFactoryBuilder().build(inputStream);//创建sqlSessionSqlSession sqlSession sessionFactory.openSession();System.out.println(tomcat启动并加载mybatis环境 sqlSession);//把sqlSession对象撞到servletContext中ServletContext servletContext sce.getServletContext();servletContext.setAttribute(sqlSession, sqlSession);}catch (Exception e){e.printStackTrace();}}Overridepublic void contextDestroyed(ServletContextEvent sce) {} }编写jsp代码 % page contentTypetext/html;charsetUTF-8 languagejava % htmlheadtitle$Title$/title/headbodyh1用户管理系统/h1form actionlogin methodpost账号input typetext nameusernamebr密码input typetext namepasswordbrinput typesubmit value登录/form/body /html % page contentTypetext/html;charsetUTF-8 languagejava % html headtitleTitle/title /head bodyh1人总得有个活着的理由。/h1 /body /html 编写serviet的代码 package com.by.servlet;import com.by.pojo.User; import com.by.service.UserService; import com.by.service.impl.UserServiceImpl;import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; //表现层 public class LoginServlet extends HttpServlet {Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {doPost(req, resp);}Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {//根据input标签的name属性获取前端提交的参数String username req.getParameter(username);String password req.getParameter(password);//调用serviceUserService userService new UserServiceImpl(this);User user userService.login(username, password);if(user ! null){//如果登录成功则跳转到select_list.jspreq.getRequestDispatcher(select_list.jsp).forward(req, resp);}else{//如果登录失败则跳转到login.jspreq.getRequestDispatcher(login.jsp).forward(req, resp);}} }实现service下的接口和实现类 UserService接口 package com.by.service;import com.by.pojo.User;public interface UserService {User login(String username, String password); }UserServicelmpl.java: package com.by.service.impl;import com.by.mapper.UserMapper; import com.by.pojo.User; import com.by.service.UserService; import com.by.servlet.LoginServlet; import org.apache.ibatis.session.SqlSession;import javax.servlet.ServletContext;//业务层 public class UserServiceImpl implements UserService {private UserMapper userMapper;public UserServiceImpl(LoginServlet loginServlet) {System.out.println(loginServlet);ServletContext servletContext loginServlet.getServletContext();SqlSession sqlSession (SqlSession) servletContext.getAttribute(sqlSession);userMapper sqlSession.getMapper(UserMapper.class);}Overridepublic User login(String username, String password) {//业务逻辑...//调用dao层return userMapper.login(username, password);} }书写sql语句 UserMapper public interface UserMapper {User login(Param(username) String username, Param(password) String password); }UserMapper.xml: ?xml version1.0 encodingUTF-8? !DOCTYPE mapper PUBLIC -//mybatis.org//DTD Mapper 3.0//ENhttp://mybatis.org/dtd/mybatis-3-mapper.dtd mapper namespacecom.by.mapper.UserMapperselect idlogin resultTypecom.by.pojo.UserSELECT * FROM user WHERE username#{username} AND password#{password}/select /mapper wab.xml文件的配置 ?xml version1.0 encodingUTF-8? web-app xmlnshttp://xmlns.jcp.org/xml/ns/javaeexmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsdversion4.0!--配置监听器--listenerlistener-classcom.by.listener.MyServletContextListener/listener-class/listenerservletservlet-namelogin/servlet-nameservlet-classcom.by.servlet.LoginServlet/servlet-class/servletservlet-mappingservlet-namelogin/servlet-nameurl-pattern/login/url-pattern/servlet-mappingwelcome-file-listwelcome-filelogin.jsp/welcome-file/welcome-file-list /web-app 数据库  输入账号密码进行跳转
http://www.w-s-a.com/news/935427/

相关文章:

  • qq空间怎么做网站做企业平台的网站有哪些
  • 网站的优缺点wordpress手机适配模板中文
  • 福州网站建设H5广告公司简介简短
  • 网站404页面的作用app开发郑州
  • 亚马逊中国网站建设目标网站建设的策划
  • 林州网站建设服务徐州网站建设
  • 如何检测网站死链景德镇网站建设哪家好
  • 旅游网站开发目标天津专业做网站公司
  • 名者观看网站快手小程序
  • 网络架构扁平化windows优化大师好不好
  • 安康养老院收费价格表兰州seo整站优化服务商
  • 网站开发技术方案模板无锡网站建设推荐
  • 自助建站系统注册三维家3d设计软件免费
  • 做seo网站标题重要吗郑州众诚建设监理有限公司网站
  • 建设网站南沙区百度关键词推广怎么做
  • 网站建设公司做销售前景好不好石家庄外贸网站制作
  • windows2008做网站网站首页打开速度
  • 做外贸要做什么网站服装设计图
  • 中山市路桥建设有限公司网站网站开发角色分配权限
  • 加强档案网站建设网站搭建好了不用会不会被攻击
  • 维护网站信息网络建设服务
  • 网站建设策划书模板下载用自己电脑配置服务器做网站
  • 360免费建站空间淘宝数据网站开发
  • 做分销的网站本地dede网站怎么上线
  • 中学网站模板北京管理咨询公司
  • 网站开发用哪个软件方便二级网站建设 管理思路
  • 个人怎么创建网站中国建设银行网站口
  • 跟知乎一样的网站做展示网站步骤
  • 邯郸网站建设效果好wordpress app 加载慢
  • 做app的网站有哪些功能广州自适应网站建设