JSP学习并实现的过程--day02

一、今日任务

今天的主要任务是两个:
1.完成登录页面的美化;
2.实现数据库的安装和可视化;
3.学习JSP知识

二、完成登录页面的美化

其实首先是页面框架,然后才是考虑展示效果。
login.jsp的页面代码如下:

<%@ page contentType="text/html;charset=GBK" errorPage="error.jsp" language="java" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
     "http://www.w3.org/TR/xhtml1/DTD/xhtml-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
 <meta name=keywords content=小游戏,little game,心理游戏,心理提升>
 <meta name=description
  content=这是心理学爱好者自编的网页,目前还在编写阶段,欢迎试用>
 <meta http-equiv="X-UA-Compatible" content="ie=edge">
 <meta name="viewport" content="width=device-width, initial-scale=1.0">
 <title>登录页面</title>
 <link rel="icon" href="./img/label.png" >
 <link rel="stylesheet" href="./styles/sui.css">
 
</head>
<body>
 <div class="sui-full-size sui-flex sui-flex-column">
 
  <div class="sui-full-width scroll-y">
   <section class="letter" >
    <div style="padding-bottom: 1rem;" align="center">
                    <img align="center" style="height: 2rem;" src="./img/first.png" alt="心理提升">
                </div>
   </section>
    <form align="center" id="login" method="post" action="./jsp/temp.jsp">
     <table align="center">
      <tr> 
       <td>用户名:</td>
       <td><input type="text" name="username"></td>
      </tr>
      <tr>
       <td>&nbsp&nbsp&nbsp码:</td>
       <td><input type="password" name="password"></td>
      </tr>
      <tr align="center">
       <td colspan="2"><input type="submit" value="登录">&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp<input type="submit" value="注册"></td>
      </tr>
     </table>
    </form>
  </div>
 </div>
</body>
</html>

接下来是css表现代码。

/**
 * size with percent
 */
.sui-full-size {
  height: 100%;
  width: 100%;
}
/**
 * flex layout style
 */
.sui-flex {
  /* ios 6- or safari 3.1-6 */
  display: -webkit-box;
  /* firefox 19- (buggy but mostly works) */
  display: -moz-box;
  /* ie 10+ */
  display: -ms-flexbox;
  /* chrome */
  display: -webkit-flex;
  /* standard */
  display: flex;
}
.sui-flex-column {
  /* flex 09 */
  -webkit-box-orient: vertical;
  /* flex 12 */
  -webkit-flex-direction: column;
  -moz-flex-direction: column;
  -ms-flex-direction: column;
  -o-flex-direction: column;
  flex-direction: column;
}
.sui-full-width {
  width: 100%;
}
.scroll-y {
  -webkit-overflow-scrolling: touch;
  overflow-y: scroll;
}
.letter {
  padding: 1rem 5% 1rem 5%;
  border-bottom: 1px dotted #d3dfef;
  background: -webkit-linear-gradient(top, #f6f9fc, #ffffff);
  background: -moz-linear-gradient(top, #f6f9fc, #ffffff);
  background: -o-linear-gradient(top, #f6f9fc, #ffffff);
  background: linear-gradient(top, #f6f9fc, #ffffff);
}

jsp页面展示效果如下:
在这里插入图片描述
页面展示今天就到这里,下面考虑进行数据库的连接。

三、完成数据库登录和连接

数据库安装参考网址:数据库安装
安装可视化工具:安装链接

四、今日学习内容

1.Servlet类简介

  • Servlet作为控制器使用
  • Servlet的方法,继承HttpServlet
    • doGet()
    • doPost()
    • doPut()
    • doDelete()
    • service():大部分时候重写这个就可以了
    • init(ServletConfig config):如果重写了init需在第一行调用super.init(config)
    • destroy()

2.Servlet的生命周期

  • Web容器创建Servlet
    • 客户第一次请求
    • load-on-startup
  • init()初始化
  • 运行(用户访问)
  • 销毁

3.一般Servlet的配置

两种配置方法:
①在Servlet中使用@WebServlet配置

  • 无需在Servlet中配置<Servlet/>和<Servlet-mapping/>
  • 根节点中的属性metadata-complete不需要为true

②web.xml配置

  • 需要配置Servlet和<Servlet/>和<Servlet-mapping/>

方法①示例代码:
servlet代码

package lee;
import Dao.FirstDao;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;
import javax.servlet.http.HttpServlet;
import javax.servlet.annotation.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet(name="firstServlet" ,urlPatterns={"/firstServlet"})
public class FirstServlet extends HttpServlet
{ 
 public void service(HttpServletRequest request,
      HttpServletResponse response)
 {
String ip=request.getRemoteAddr();
  SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//设置日期格式
  String time=df.format(new Date());
  new FirstDao().setHistory(ip,time);
  try {
   response.sendRedirect(request.getContextPath()+"/jsp/temp.jsp");
  } catch (IOException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
 }
}

登录页面代码:

<%@ page contentType="text/html;charset=GBK" errorPage="error.jsp" language="java" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
     "http://www.w3.org/TR/xhtml1/DTD/xhtml-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
 <meta name=keywords content=小游戏,little game,心理游戏,心理提升>
 <meta name=description
  content=这是心理学爱好者自编的网页,目前还在编写阶段,欢迎试用>
 <meta http-equiv="X-UA-Compatible" content="ie=edge">
 <meta name="viewport" content="width=device-width, initial-scale=1.0">
 <title>登录页面</title>
 <link rel="icon" href="./img/label.png" >
 <link rel="stylesheet" href="./styles/sui.css">
</head>
<body>
 <div class="sui-full-size sui-flex sui-flex-column">
 
  <div class="sui-full-width scroll-y">
   <section class="letter" >
    <div style="padding-bottom: 1rem;" align="center">
                    <img align="center" style="height: 2.5rem;" src="./img/first.png" alt="心理提升">
                </div>
   </section>
    <form align="center" id="login" method="post" action="/webDemo_sit/firstServlet">
     <table align="center">
      <tr> 
       <td>用户名:</td>
       <td><input type="text" name="username"></td>
      </tr>
      <tr>
       <td>&nbsp&nbsp&nbsp码:</td>
       <td><input type="password" name="password"></td>
      </tr>
      <tr align="center">
       <td colspan="2"><input type="submit" value="注册">&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp<input type="submit" value="登录"></td>
      </tr>
     </table>
    </form>
  </div>
 </div>
</body>
</html>

后台数据库录入数据代码:

package Dao;
import java.sql.*;
 public class FirstDao {
  static final String JDBC_DRIVER = "com.mysql.cj.jdbc.Driver";  
  static final String DB_URL = "jdbc:mysql://localhost:3306/webdemo?serverTimezone=GMT";
  static final String USER = "*****";
  static final String PASS = "********";
  public void setHistory(String ip,String time)
  {
  Connection conn = null;
        Statement stmt = null;
  PreparedStatement pst =null;
        try{
          Class.forName(JDBC_DRIVER);
             
             // 打开链接
             conn = DriverManager.getConnection(DB_URL,USER,PASS);
             // 执行查询
             stmt = conn.createStatement();
             String sql = "INSERT  INTO  history_inf  VALUES (?,?)";
    pst = conn.prepareStatement(sql);
    pst.setString(1,ip);
    pst.setString(2,time);
    pst.executeUpdate();
        }catch(SQLException se){
            // 处理 JDBC 错误
            se.printStackTrace();
        }catch(Exception e){
            // 处理 Class.forName 错误
            e.printStackTrace();
        }finally{
            // 关闭资源
            try{
                if(stmt!=null) stmt.close();
            }catch(SQLException se2){
            }// 什么都不做
            try{
                if(conn!=null) conn.close();
            }catch(SQLException se){
                se.printStackTrace();
            }
         }
        }
}

使用ant生成class字节代码:
1.需要编写build.xml文件,之前已经写过,也可到之前的day01帖子里查看;
2.但是发现编译没有办法通过,然后到classpath里面配置了环境变量,把servlet-api.jar和jsp-api.jar放到路径下面。
CLASSPATH:
.;%JAVA_HOME%\lib;D:\programSoftware\apache-tomcat-7.0.100\lib\servlet-api.jar;D:\programSoftware\apache-tomcat-7.0.100\lib\jsp-api.jar
在这里插入图片描述
3.重启应用下面的服务器,运行,到数据库里查看登录情况。
在这里插入图片描述
方法②示例代码:

 <servlet>
  <servlet-name>firstServlet</servlet-name>
  <servlet-class>lee.FirstServlet</servlet-class>
 </servlet>
 <servlet-mapping>
  <servlet-name>firstServlet</servlet-name>
  <url-pattern>/aa</url-pattern>
 </servlet-mapping>

4.load-on-startup Servlet设置

两种配置方法:
①在Servlet中使用@WebServlet配置

  • 指定load-on-startup
  • @WebServlet(loadOnSstartup=1)

②web.xml配置

  • 需要配置Servlet中<Servlet/>的子标签<load-on-startup/>
<servlet>
   <servlet-name>........</servlet-name>
   <servlet-class>.......</servlet-class>
   <load-on-startup>...</load-on-startup>
</servlet>

三、今日学习总结

1.数据库登录和连接
2.一般Servlet的配置
3.load-on-startup Servlet设置

四、明日计划

1.把应用部署到虚拟云主机上(其实是复习,看一下是不是哪些步骤被忘了);
2.继续学习Servlet相关知识。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
顺序如下: 1、多种字体大小显示 2、c:out标记输出 3、获取当前时间 4、include包含语句 5、建立错误处理页面的范例程序 6、jsp:forward 7、简单计数器 8、设置页面属性 9、使用GB2312编码 10、使用Big5编码 11、c:catch的用法 12、 begin、end和step的用法 13 、 循环 14、 varStatus 的四种属性 15、 的用法 16、从客户端传送数据至服务端 17、使用Unicode转义字符 18、使用朝鲜语字符集 19、JSP中最简单的国际化程序 20、错误检测 21、抛出异常 22、 的用法 23、和 的用法 24、 的用法 25、jsp-include的用法 26、汉字处理 27、网页重定向 28、自动更新网页 29、存取session 30、 的用法 31、单选型列表框 32、jsp文件中定义类 3 3、取得 JSP Container 版本 34、javax.servlet.jsp.JspWriter - out 对象 35、page 隐含对象 36、application 对象 37、PageContext 对象 38、Page范围 - pageContext 39、测试要显示的中文 40、IF控制符的操作 41、HttpServletRequest 接口所提供的方法 42、 网上测验 43、HttpSession - session 对象 44、 多选型列表框 45、解决浏览器 cache 的问题 46、使用 EL、JSTL 处理表单数据 47、 EL隐含对象 param、paramValues 48、EL隐含对象 pageContext 49、EL算术运算符 50、EL关系运算符 51、EL的运算符 52、选择钮的使用 53、检查框的使用 54、群组检查框的使用 55、数字、货币、百分数格式化 56、日期格式化 57、JSTL设置语言地区 58、Cookie数据的存取 59、session有效时间的设置与取得 60、session时间与ID 61、Cookie有效时间的设置 62、利用隐藏字段传送数据 63、JSP 使用 JavaBean 的方法 64、JSP 使用 JavaBean 65、范围为 Page 的 JavaBean范例程序 66、范围为 Request的 JavaBean 67、范围为 Session 的 JavaBean 68、范围为 Application 的 JavaBean 69、删除 JavaBean 70、url重组 71、Switch语句 72、环境变量 73、forward重定向 74、文件的建立与删除 75、取得文件属性 76、取得目录中的文件 77、目录的建立与删除 78、自Cookie存取日期/时间数据 79、管理Session变量 80、数据库中的记录数与记录指针位置 81、利用absolute方法设置记录位置 82、使用jsp指令生成Word文档 83、JSP网页模板 84、判断是否空白文件 85、cookie 用户登录次数 86、获取用户的真实IP地址 87、获取用户的浏览器信息 88、在客户端进行数据检查 89、在JSP中获取当前绝对路径 90、读取表单中所有参数 91、分行写入数据 92、显示请求URL 93、判断session是否过期 94、参数式查询数据库 95、取得数据库中各栏名称 96、使用JavaBean、设置和获取Bean的属性 97、设置Bean的一个属性与输入参数关联 98、实现基于数据库的站内搜索 99、DOM读取XML文档 100、SAX读取XML文档

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值