保存 http request 的数据到数据库表
开发需求:把 http request 对象的数据保存到数据库中
第一步:编写 RequestInfoService 类,保存方法名是 saveRequestInfo
// 保存request信息
public void saveRequestInfo(HttpServletRequest request){
Connection conn = null;
PreparedStatement pstmt = null; BaseDao baseDao = new BaseDao();
try {
conn = baseDao.dbConnection();
} catch (SQLException e1) {
e1.printStackTrace();
} StringBuffer sqlBf = new StringBuffer();
sqlBf.setLength(0); sqlBf.append("INSERT INTO REQUEST_INFO (REQUEST_INFO_SEQ \n");
sqlBf.append(" , CHARACTER_ENCODING \n");
sqlBf.append(" , CONTENT_TYPE \n");
sqlBf.append(" , CONTEXT_PATH \n");
sqlBf.append(" , LOCAL_ADDR \n");
sqlBf.append(" , LOCAL_NAME \n");
sqlBf.append(" , LOCAL_PORT \n");
sqlBf.append(" , METHOD \n");
sqlBf.append(" , REMOTE_ADDR \n");
sqlBf.append(" , REMOTE_HOST \n");
sqlBf.append(" , REMOTE_PORT \n");
sqlBf.append(" , REMOTE_USER \n");
sqlBf.append(" , REQUEST_URI \n");
sqlBf.append(" , REQUESTED_SESSION_ID \n");
sqlBf.append(" , LOCALE \n");
sqlBf.append(" , REGI_DT) \n");
sqlBf.append("VALUES(SEQ_REQUEST_INFO.NEXTVAL \n");
sqlBf.append(" , ? \n");
sqlBf.append(" , ? \n");
sqlBf.append(" , ? \n");
sqlBf.append(" , ? \n");
sqlBf.append(" , ? \n");
sqlBf.append(" , ? \n");
sqlBf.append(" , ? \n");
sqlBf.append(" , ? \n");
sqlBf.append(" , ? \n");
sqlBf.append(" , ? \n");
sqlBf.append(" , ? \n");
sqlBf.append(" , ? \n");
sqlBf.append(" , ? \n");
sqlBf.append(" , ? \n");
sqlBf.append(" , SYSDATE) \n"); System.out.println(sqlBf.toString()); try {
pstmt = conn.prepareStatement(sqlBf.toString());
idx = 1;
pstmt.setString(idx++, request.getCharacterEncoding());
pstmt.setString(idx++, request.getContentType());
pstmt.setString(idx++, request.getContextPath());
pstmt.setString(idx++, request.getLocalAddr());
pstmt.setString(idx++, request.getLocalName());
pstmt.setInt(idx++, request.getLocalPort());
pstmt.setString(idx++, request.getMethod());
pstmt.setString(idx++, request.getRemoteAddr());
pstmt.setString(idx++, request.getRemoteHost());
pstmt.setInt(idx++, request.getRemotePort());
pstmt.setString(idx++, request.getRemoteUser());
pstmt.setString(idx++, request.getRequestURI());
pstmt.setString(idx++, request.getRequestedSessionId());
pstmt.setString(idx++, request.getLocale().toString()); int i = pstmt.executeUpdate();
if (i == 1) {
System.out.println("##### save request success \n");
} else {
System.out.println("##### save request fail \n");
}
} catch (SQLException e) {
e.printStackTrace();
} try {
baseDao.dbDisconnection();
} catch (SQLException e) {
e.printStackTrace();
}
}
第二步:Oracle 建表语句
CREATE TABLE SCOTT.REQUEST_INFO
(
REQUEST_INFO_SEQ NUMBER NOT NULL,
CHARACTER_ENCODING VARCHAR2 (10),
CONTENT_TYPE VARCHAR2 (10),
CONTEXT_PATH VARCHAR2 (50),
LOCAL_ADDR VARCHAR2 (50),
LOCAL_NAME VARCHAR2 (50),
LOCAL_PORT NUMBER,
METHOD VARCHAR2 (10),
REMOTE_ADDR VARCHAR2 (20),
REMOTE_HOST VARCHAR2 (20),
REMOTE_PORT NUMBER,
REMOTE_USER VARCHAR2 (20),
REGI_DT DATE,
REQUEST_URI VARCHAR2 (50),
REQUESTED_SESSION_ID VARCHAR2 (100),
LOCALE VARCHAR2 (20)
) ALTER TABLE SCOTT.REQUEST_INFO ADD(
CONSTRAINT PK_REQUEST_INFO_SEQ PRIMARY KEY (REQUEST_INFO_SEQ));
第三步:在访问页面的servlet中调用此service
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
RequestInfoService ris = new RequestInfoService();
ris.saveRequestInfo(request);
EmpService es = new EmpService();
EmpBean eb = new EmpBean();
eb.setEname(request.getParameter("searchTxt"));
ArrayList<EmpBean> empBean = es.getEmpList(eb);
request.setAttribute("empBean", empBean);
request.getRequestDispatcher("/view/empList.jsp").forward(request, response);
}
第四步:测试
访问 http://localhost:8081/web01/view/empList.jsp 页面进行测试。正常时每次点击 search 按钮,插入一条记录到数据库中
保存 http request 的数据到数据库表的更多相关文章
- 通过js获取前台数据向一般处理程序传递Json数据,并解析Json数据,将前台传来的Json数据写入数据库表中
摘自:http://blog.csdn.net/mazhaojuan/article/details/8592015 通过js获取前台数据向一般处理程序传递Json数据,并解析Json数据,将前台传来 ...
- 《项目经验》--通过js获取前台数据向一般处理程序传递Json数据,并解析Json数据,将前台传来的Json数据写入数据库表中
先看一下我要实现的功能界面: 这个界面的功能在图中已有展现,课程分配(教师教授哪门课程)在之前的页面中已做好.这个页面主要实现的是授课,即给老师教授的课程分配学生.此页面实现功能的步骤已在页面 ...
- Oracle sqlldr 在DOS窗口导入多列数据到数据库表
sqlldr 用法详见:https://www.cnblogs.com/rootq/archive/2009/03/01/1401061.html 测试内容: 1.创建数据库表: create tab ...
- Excel表数据导入数据库表中
***Excel表数据导入到数据库表中 通过数据库表的模板做成‘Excel’表的数据导入到数据库相应的表中(注意:主表 和 从表的关系,要先导‘主表’在导入从表) 过程:通过数据库的导入工具—先导入为 ...
- SQL语句完成Excel数据导入数据库表中流程方法及注意事项
第一步:先查看数据库是否安装AccessDatabaseEngine_X64.exe, 如下图查看: 如果未安装先下载脚本之家下载地址 https://www.jb51.net/softs/29150 ...
- oralce 超过1亿条数据的数据库表清理实践
2018-08-18 16:58 无腿鸟 阅读(331) 评论(0) 编辑 收藏 问题:当一个表的数据量超过一亿条,要删除其中的5000w条,如何处理. 如果直接使用delete语句,会涉及到到大量的 ...
- 导入数据到数据库表,报错[Err] [Row1] [Imp] 1153 - Got a packet bigger than 'max_allowed_packet' bytes
# 在数据库新增查询,执行如下命令即可: show VARIABLES like '%max_allowed_packet%'; set global max_allowed_packet = 2*1 ...
- java实现excel表格导入数据库表
导入excel就是一个上传excel文件,然后获取excel文件数据,然后处理数据并插入到数据库的过程 一.上传excel 前端jsp页面,我的是index.jsp 在页面中我自己加入了一个下载上传文 ...
- Activiti工作流数据库表结构
Activiti工作流引擎数据库表结构 数据库表的命名 Acitiviti数据库中表的命名都是以ACT_开头的.第二部分是一个两个字符用例表的标识.此用例大体与服务API是匹配的. ACT_RE_*: ...
随机推荐
- javascript闭包和闭包的几种写法和用法
什么是闭包 闭包,官方的解释是:一个拥有需要许多变量和绑定了这=这些变量的表达式(通常是一个函数),因而这些变量也是该表达式的一部分.闭包的特点: 1 作为一个函数变量的引用,当函数返回时,其处于激活 ...
- RTC驱动程序分析
drivers\rtc\rtc-s3c.c s3c_rtc_init platform_driver_register s3c_rtc_probe ...
- final/finalize/finally的区别
一.性质不同 (1)final为关键字: (2)finalize()为方法:---垃圾回收机制中的方法(GC) (3)finally为为区块标志,用于try语句中: 二.作用 (1)final为用于标 ...
- ETL 循环导入 平面文件
http://blog.csdn.net/zlp321002/article/details/3413365 ETL设计之-Foreach 循环容器 应用场景: 批量导入某一文件夹下的所有文件.就可以 ...
- Manasa and Combinatorics
题意: 给定n,求问由2n个字母B,n个字母A构成的字符串中 任意前缀B的个数大于A的个数且任意后缀B的个数大于A的个数的 字符串个数. 解法: 注意到答案不易于直接计算,所以我们考虑应用容斥原理. ...
- B. Vanya and Food Processor【转】
B. Vanya and Food Processor time limit per test 1 second memory limit per test 256 megabytes input s ...
- HDOJ-2048
神.上帝以及老天爷 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total S ...
- POJ - 2376 Cleaning Shifts 贪心(最小区间覆盖)
Cleaning Shifts Farmer John is assigning some of his N (1 <= N <= 25,000) cows to do some clea ...
- 进击python第三篇:基础
基础拾遗 序列解包 例: >>>x,y,z=1,2,3 >>>print x,y,z 1 2 3 交换变量也是没问题 >>>x,y=y,x > ...
- spark sql 对接 HDFS
上一篇博客我向大家介绍了如何快速地搭建spark run on standalone,下面我将介绍saprk sql 如何对接 hdfs 我们知道,在spark shell 中操作hdfs 上的数据是 ...