• java ee,包括js,html,jsp等等知识整合


     
    为了方便修改和后续的包装套路
     

    首先用户访问的页面从web.xml找到
    <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    </welcome-file-list>
    欢迎页面设置,这个可以设置有限访问的页面,这里是index.html
    那么接下来用户可以通过index.html发出的亲求
    如form表单提交的地址/manage/user/index映射到UserServlet去获取数据
    <servlet>
      <servlet-name>UserServlet</servlet-name>
      <servlet-class>com.linyi.controller.UserServlet</servlet-class>
    </servlet>
    <servlet-mapping>
      <servlet-name>UserServlet</servlet-name>
      <url-pattern>/manage/user/index</url-pattern>
    </servlet-mapping>
    然后UiserServlet继承HttpServlt
    复写doGet或doPost方法
    public class UserServlet extends HttpServlet {
      //IUserService iUserService = new UserServiceImpl();
      IUserService iUserService = BeanFactory.getInstance("userService",IUserService.class);
      @Override
      protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        List<User> users = iUserService.getUsers();
        req.setAttribute("users",users);
        this.getServletConfig().getServletContext().getRequestDispatcher("/users/index.jsp").forward(req,resp);
      }
    }
    这里调用了UserServiceImpl获取并转发到users/index.jsp页面
    之后来到UserServiceImpl
    IUserDao iUserDao = BeanFactory.getInstance("userDao",IUserDao.class);
    @Override
    public List<User> getUsers() {
      return iUserDao.getAllUsers();
    }
    @Override
    public void addUser(String name) throws UserException{
      int re = iUserDao.addUser(name);
      if(re!=0){
      throw new UserException("插入数据异常"+name);
    }
    }
    public void updateUser(int id,String name){
      iUserDao.updateUser(id,name);
    }
    @Override
    public User selectUser(int id) throws UserException {
      User user = iUserDao.selectUser(id);
      if(user == null){
        throw new UserException("未查到数据"+id);
      }else{
        return user;
      }
    }
    这里调用了UserDaoImpl来获取数值
    这个UserDao用来操作数据库
    实例化出User这个包装类,在依次拿到值后返回页面
    public List<User> getAllUsers() {
      //连接数据库
      List<User> users = new ArrayList<User>();
      //连接数据库
      try {
        Class.forName("com.mysql.jdbc.Driver");
        Connection connection = DriverManager.getConnection("jdbc:mysql://localhost/student", "root", "root");
        String sql = "SELECT * FROM emp ";
        PreparedStatement prepareStatement = connection.prepareStatement(sql);
        ResultSet resultSet = prepareStatement.executeQuery();
     
        while(resultSet.next()){
          int id = resultSet.getInt(1);
          String name = resultSet.getString(2);
          User user = new User(id,name);
          users.add(user);
        }
      } catch (Exception e) {
        e.printStackTrace();
      }
      return users;
    }
     
    @Override
    public int addUser(String name) {
      try {
        Class.forName("com.mysql.jdbc.Driver");
        Connection connection = DriverManager.getConnection("jdbc:mysql://localhost/student", "root", "root");
        String sql = "INSERT INTO emp VALUES('"+name+"') ";
        PreparedStatement prepareStatement = connection.prepareStatement(sql);
        prepareStatement.execute();
      } catch (Exception e) {
        e.printStackTrace();
        return -1;
      }
      return 0;
    }
    public void updateUser(int id,String name) {
      try {
        Class.forName("com.mysql.jdbc.Driver");
        Connection connection = DriverManager.getConnection("jdbc:mysql://localhost/student", "root", "root");
        String sql = "UPDATE emp set name='"+name+"' where id="+id+"";
        PreparedStatement prepareStatement = connection.prepareStatement(sql);
        prepareStatement.execute();
      } catch (Exception e) {
        e.printStackTrace();
      }
    }
     
    @Override
    public User selectUser(int id) {
      User user = null;
      try {
        Class.forName("com.mysql.jdbc.Driver");
        Connection connection = DriverManager.getConnection("jdbc:mysql://localhost/student", "root", "root");
        String sql = "SELECT* FROM emp WHERE `id`="+id;
        PreparedStatement prepareStatement = connection.prepareStatement(sql);
        ResultSet set = prepareStatement.executeQuery();
        while (set.next()){
          int id2 = set.getInt(1);
          String name = set.getString(2);
          user = new User(id2,name);
        }
      } catch (Exception e) {
        e.printStackTrace();
      }
      return user;
    }
    requestScope.message 使用方式
    <html>
    <head>
    <title>Title</title>
    </head>
    <body>
    ${requestScope.message}
    </body>
    </html>
    注意:
    requestScope是el表达式的隐含对象,和变量作用域差不多。   el表达式的隐含对象包括:   pageScope,requestScope,sessionScope,applicationScope   例如:${message}   el会依次到pageScope,requestScope,sessionScope,applicationScope中寻找,直到找到为止。   如果写成${requestScope.message}的形式,将会缩小范围只在requestScope中查找message。
    表示变量的作用域,一共4种:
    pageScope:表示变量只能在本页面使用。
    requestScope:表示变量能在本次请求中使用。
    sessionScope:表示变量能在本次会话中使用。
    applicationScope:表示变量能在整个应用程序中使用。
     
    <link href="resources/plugins/bootstrap-3.3.0/css/bootstrap.min.css" rel="stylesheet"/>
    bottstrap.css包http://www.bootcss.com/一个整合了很多特效的工具
    <link href="resources/plugins/material-design-iconic-font-2.2.0/css/material-design-iconic-font.min.css" rel="stylesheet"/>
    用于图标的包
    <link href="resources/plugins/waves-0.7.5/waves.min.css" rel="stylesheet"/>
    点击按钮或div可以显示波浪效果的包
    <link href="resources/plugins/checkbix/css/checkbix.min.css" rel="stylesheet"/>
    选框工具特效的包
     
    placeholder 用于设置文本框默认文字
    1、 规定输入字段是否应该启用自动完成功能 属性值on off
    自动完成允许浏览器预测对字段的输入。当用户在字段开始键入时,浏览器基于之前键入过的值,应该显示出在字段中填写的选项。
    注释:autocomplete 属性适用于 form,以及下面的 input 类型:text, search, url, telephone, email, password, datepickers, range 以及 color。
    2、required="required"规定必需在提交之前填写输入字段。
    如果使用该属性,则字段是必填(或必选)的。
    注释:required 属性适用于以下 input类型:text, search, url, telephone, email, password, date pickers, number, checkbox, radio 以及 file。
    3、aotofocus 自动获取焦点
    4、style
    input:focus
    {
    background-color:yellow;
    }
    /style
    当前input获取焦点背景色变黄色 失去焦点变默认
     
  • 相关阅读:
    hive:Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient
    spark报错:Class org.apache.mapreduce.io.compress.GzipCodec not found
    flink操作mysql
    kettle解除同步条数限制
    hdfs上传文件报错,org.apache.hadoop.fs.ChecksumException:
    spark程序运行报错:java.lang.NoSuchMethodError:
    git merge的三种操作merge, squash merge, 和rebase merge
    高人制作的CocosCreator分包插件
    Android Studio 编译构建报错总结
    Mac OSX下修改 ulimit 参数
  • 原文地址:https://www.cnblogs.com/qihongbao/p/7099173.html
Copyright © 2020-2023  润新知