开发需求:把 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 按钮,插入一条记录到数据库中

最新文章

  1. Cookie和Session的那些事儿
  2. Javascript学习记录——原生JS实现旋转木马特效
  3. Javascript 优化项目代码技巧之语言基础(一)
  4. Eclipse高级使用技巧
  5. jquery.validate使用 - 1
  6. PHP取当前年、月、日开始时间戳和下年、月、日开始时间戳函数
  7. Java_一些特殊的关键字详(?)解
  8. 各种注释--------html,jsp
  9. Ubuntu下安装配置zsh和oh my zsh
  10. STM32之CAN ---CAN ID过滤器分析
  11. AJAX+cURL+SimpleXMLElement处理数据
  12. system.io.file创建
  13. mybatis 整合spring之mapperLocations配置的问题
  14. 使用java的wsimport.exe生成wsdl的客户端代码【转】
  15. omcat+java的web程序持续占cpu高问题调试【转】
  16. struts2 action中字符串转json对象出错 java.lang.NoClassDefFoundError: org/apache/commons/lang/exception/NestableRuntimeException
  17. typescript-koa-postgresql 实现一个简单的rest风格服务器 —— 连接 postgresql 数据库
  18. 20135337朱荟潼 Linux第三周学习总结 ——Linux内核源代码简介
  19. c++之拷贝构造函数调用时机
  20. Curious Array CodeForces - 407C (高阶差分)

热门文章

  1. 经典分析--HTTP协议
  2. 21.java方法详解
  3. 【Linux学习】Linux文件系统4—Linux文件硬链接与软连接
  4. UVa 10723 Cyborg Genes (LCS, DP)
  5. C#基础:通过委托给任何对象数组进行排序
  6. HDU4801【DFS】
  7. C#:索引
  8. 企业级应用,如何实现服务化二(dubbo架构)
  9. struts2与struts1的比较
  10. JMeter提取和重用作为变量 - 具有更多提取器