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

首先用户访问的页面从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获取焦点背景色变黄色 失去焦点变默认
 

java ee,包括js,html,jsp等等知识整合的更多相关文章

  1. java web基础 js、JSP、servlet之间的传递

    @ JS 与 JSP :JSP无法直接获取JS的值,只能通过隐藏表单或者dom节点设置. JSP中设置隐藏表单input,或者设置任意一个隐藏或者不隐藏的节点比如div, 而JS就通过document ...

  2. 【Java EE 学习 82 下】【MAVEN整合Eclipse】【MAVEN的一些高级概念】

    一.MAVEN整合Eclipse MAVEN是非常优秀,但是总是要开命令行敲命令是比较不爽的,我们已经习惯了使用IDE,所以还有一种将MAVEN整合到Eclipse的方法. 详情查看:http://w ...

  3. 轻量级Java EE企业应用实战(第4版):Struts 2+Spring 4+Hibernate整合开发(含CD光盘1张)

    轻量级Java EE企业应用实战(第4版):Struts 2+Spring 4+Hibernate整合开发(含CD光盘1张)(国家级奖项获奖作品升级版,四版累计印刷27次发行量超10万册的轻量级Jav ...

  4. 关于JAVA EE项目在WEB-INF目录下的jsp页面如何访问WebRoot中的CSS和JS文件

    找了这么久资料,总算解决了 感谢博客园:http://www.cnblogs.com/xsht/p/5275081.html 感谢百度:http://zhidao.baidu.com/link?url ...

  5. JavaWeb学习----JSP简介及入门(含Eclipse for Java EE及Tomcat的配置)

    ​[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/ ...

  6. Java学习-033-JavaWeb_002 -- 网页标记语言JSP基础知识

    JSP 是 Sun 公司提倡的一门网页技术标准.在 HTML 文件中,加入 Java 代码就构成了 JSP 网页,当 Web 服务器访问 JSP 请求的时候,首先执行其中的 Java 程序源码,然后以 ...

  7. Java EE基础之JSP

    从本篇文章开始,我会用文章记录下我在学习Java EE过程中的一些笔记和感悟,至于还没有更新结束的Java SE还是会继续写的,只是我觉得一直写语法很枯燥,自己也没法继续下去,所以带着点web学习,会 ...

  8. Java EE之JSP

    1.使用JSP的原因 编写Servlet代码的时候,向响应中输出HTML文档是非常不方便的. PrintWriter writer = response.getWriter(); writer.app ...

  9. Java EE基础之JSP(二)

    接着上篇文章,我们上篇文章讲到了jsp的基本原理以及和servlet的关系,还介绍了jsp的基本语法部分,本篇文章就继续介绍余下的内容. 编译指令Page和include 基本的动作指令 内置对象 一 ...

随机推荐

  1. Numpy学习二:数组的索引与切片

    1.一维数组索引与切片#创建一维数组arr1d = np.arange(10)print(arr1d) 结果:[0 1 2 3 4 5 6 7 8 9] #数组的索引从0开始,通过索引获取第三个元素a ...

  2. C++ Opencv 自写函数实现膨胀腐蚀处理

    一.膨胀腐蚀学习笔记 二.代码及结果分享 #include <opencv2/opencv.hpp> #include <iostream> using namespace s ...

  3. Python的基础语法(一)

    0. 前言 最近正在重新整理Python的基础知识,以便更好地学习新知识.这一部分主要是讲述Python基础语法的演示.下面的语法都是基于Python3的语法. 1. 注释 注释:Python的注释方 ...

  4. linux scp 使用方法

    scp虽然只有把文见发送到远端和从远端copy文件俩功能,但是常常把俩功能的先写什么给计混了,所以我就用通俗的大白话给总结了下,十分容易记忆,这里给大家分享一下.scp 我们常用的两个功能: (1)把 ...

  5. SpringBoot集成Thymeleaf模板引擎

    简单介绍 目前在JavaEE领域有几中比较常用的模板引擎,分别是Jsp.Velocity.Freemarker.Thymeleaf,对Freemark语法不是特别熟悉,不过对于前端页面渲染效率来说,j ...

  6. ionic2 基于ngx-translate实现多语言切换,翻译

    介绍 ngx-translate 是Angular 2+的国际化(i18n)库,在github的地址是箭头 https://github.com/ngx-translate/core 将ngx-tra ...

  7. DDD实战进阶第一波(十四):开发一般业务的大健康行业直销系统(订单上下文应用服务用例与接口)

    上一篇文章我们主要讲了订单上下文的领域逻辑,在领域逻辑中完成了订单项的计算逻辑.订单的计算逻辑以及如何生成相应的实体code,这篇文章我们通过 在应用服务中实现一个下单的用例,来将这些领域逻辑以及仓储 ...

  8. Android--UI之ViewStub

    前言 按照最近博客的路线,继续讲Android的UI开发.今天讲解一下ViewStub控件,惰性装载控件.在本篇博客中,将了解到ViewStub的常用属性.方法,以及注意事项.最后将以一个简单的Dem ...

  9. Win3内存管理之私有内存跟共享内存的申请与释放

    Win3内存管理之私有内存跟共享内存的申请与释放 一丶内存简介私有内存申请 通过上一篇文章.我们理解了虚拟内存与物理内存的区别. 那么我们有API事专门申请虚拟内存与物理内存的. 有私有内存跟共享内存 ...

  10. 再也不用被this苦恼了

    前端编程对于this再熟悉不过了,今日来个老调重弹温故知新,肯定有很多大佬已经完全吃透了this原理,敬请出门左拐.对于理解this似懂非懂的同学可以借鉴一波 1.this描述 this指的是当前执行 ...