Servlet作为Java服务端程序,使用起来还是挺方便的,下面是具体配置过程,我用的是Intellij Idea。

1. 做好必要准备,Intellij Idea(或者Eclipse for J2EE)、JDK、Tomcat这些工具一个都不能少

2. 新建一个Web项目,IDE会帮我们自动生成src、web、web-inf这些文件目录,还有配置文件web.xml。我们的后端java代码一般放在src下面,JSP文件放在web目录下,jar包这些额外的库文件放在WEB-INF/lib目录下(lib目录是我自己新建的,然后右键add as library),web.xml直接放在WEB-INF下面。

3. 首先,我们要配合tomcat,让index.jsp可以跑起来。打开index.jsp,右键点击run 'index.jsp',如果没有这个选项,说明你还没配置好tomcat这个应用容器。要配置tomcat,打开File->Setting,进入设置界面,搜索‘server’,找到application server,然后就可以添加tomcat了。然后打开项目属性设置界面,这里是点击项目,按下F4即可。在Intellij idea中是选择左侧的modules,右侧查看dependencies,点击add->library可以添加tomcat,这里也可以添加第三方jar包。添加好了tomcat和jdk,index.jsp就可以run了。

4. jsp只是简单的网页嵌入了java代码,最终还是被编译成了Servlet实例。而我们要做的Servlet作为J2EE的重要部分,简单的理解就是一个java类,可以有很多实例,负责响应用户请求。当然,也有用JavaBean的,我这里暂且不说,毕竟复杂的java应用都会选用一些成熟的框架。

5. 好了,如果一切无误,就对准src文件目录新建一个package,然后新建一个Servlet类,IDE会自动生成doPost和doGet方法。新建好Servlet后,IDE还修改了web.xml文件,我们还要添加servlet-mapping节点,下面是配置好的web.xml文件。

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
  5. version="3.1">
  6. <!-- 处理支付回调 -->
  7. <servlet-mapping>
  8. <servlet-name>PayCallBackServlet</servlet-name>
  9. <url-pattern>/PayCallback</url-pattern>
  10. </servlet-mapping>
  11. <servlet>
  12. <servlet-name>PayCallBackServlet</servlet-name>
  13. <servlet-class>com.sh.server.PayCallBackServlet</servlet-class>
  14. </servlet>
  15. </web-app>

首先看到servlet-mapping,这里的url-pattern就是用户访问方式了,这里是http://localhost:8080/PayCallback。当tomcat接收到这样的http请求时,就去web.xml查找url-pattern,如果有这个/PayCallback,那么对应的servlet-name就找到了,再按照它查找到servlet-class是com.....PayCallBackServlet这个类。所以,我们要怎么处理请求,就在这个类的doPost和doGet方法里做就行了,这两个方法的区别自己查吧。

6. 如果是做实验,可以在doGet方法中加入以下代码查看效果。要重启tomcat或点击更新才能看到新内容。

  1. PrintWriter out =response.getWriter();
  2. out.println("<html>");
  3. out.println("<head><title>Servlet展示页</title></head>");
  4. out.println("<body>name:" + "<br/> sex: " +"</body>");
  5. out.println("</html>");

7. 通常我们都需要操作数据库,这里以MariaDB或者MySQL为例,下面是一个封装好的jdbc工具,但前提是你要导入用于jdbc的jar包,我这里用的是MariaDB版的。

  1. public class JDBCUtil {
  2.  
  3. //private final static String DB_DRIVER = "com.mysql.jdbc.Driver";
  4. private final static String DB_DRIVER = "org.mariadb.jdbc.Driver";
  5. private final static String DB_URL = "jdbc:mysql://localhost:3306/";
  6. private final static String DB_NAME = "root";
  7. private final static String DB_PWd = "admin";
  8.  
  9. static {
  10. try {
  11. Class.forName(DB_DRIVER);
  12. } catch (ClassNotFoundException e) {
  13. e.printStackTrace();
  14. }
  15. }
  16.  
  17. public static Connection getConnection() {
  18. Connection conn = null;
  19. try {
  20. conn = DriverManager.getConnection(DB_URL, DB_NAME, DB_PWd);
  21. } catch (SQLException e) {
  22. e.printStackTrace();
  23. }
  24. return conn;
  25. }
  26.  
  27. public static Statement getStatement(Connection conn) {
  28. Statement stmt = null;
  29. try {
  30. stmt = conn.createStatement();
  31. } catch (SQLException e) {
  32. e.printStackTrace();
  33. }
  34. return stmt;
  35. }
  36.  
  37. public static PreparedStatement getPreparedStatement(Connection conn, String sql) {
  38. PreparedStatement pstmt = null;
  39. try {
  40. pstmt = conn.prepareStatement(sql);
  41. } catch (SQLException e) {
  42. e.printStackTrace();
  43. }
  44. return pstmt;
  45. }
  46.  
  47. public static ResultSet getRs(Statement stmt, String sql) {
  48. ResultSet rs = null;
  49. try {
  50. rs = stmt.executeQuery(sql);
  51. } catch (SQLException e) {
  52. e.printStackTrace();
  53. }
  54. return rs;
  55. }
  56.  
  57. public static void close(Statement stmt) {
  58. if (stmt != null) {
  59. try {
  60. stmt.close();
  61. } catch (SQLException e) {
  62. e.printStackTrace();
  63. }
  64. }
  65. }
  66.  
  67. public static void close(ResultSet rs) {
  68. if (rs != null) {
  69. try {
  70. rs.close();
  71. } catch (SQLException e) {
  72. e.printStackTrace();
  73. }
  74. }
  75. }
  76.  
  77. public static void close(Connection conn) {
  78. if (conn != null) {
  79. try {
  80. conn.close();
  81. } catch (SQLException e) {
  82. e.printStackTrace();
  83. }
  84. }
  85. }
  86.  
  87. }

8. 现在试着用这个JDBCUtil工具来做点实际的操作吧,前提是你安装好了数据库,下面是个创建新表的例子,其实就是执行sql语句。

  1. public void createTable(){
  2.  
  3. String sql_drop = "drop table if exists " + DBNAME + "." + TABLENAME;
  4. String sql_create = "create table "+ DBNAME + "." + TABLENAME+"(id varchar(10) primary key,name varchar(10))";
  5.  
  6. Connection conn = JDBCUtil.getConnection();
  7. Statement stmt = JDBCUtil.getStatement(conn);
  8.  
  9. try {
  10. stmt.execute(sql_drop);
  11. stmt.execute(sql_create);
  12. } catch (SQLException e) {
  13. e.printStackTrace();
  14. }finally{
  15. JDBCUtil.close(conn);
  16. JDBCUtil.close(stmt);
  17. }
  18. }

下面是建好表后,插入一行的代码。这里可以根据参数,批量插入不同的数据。

  1. String sql_add = "insert into "+ DBNAME + "." +TABLENAME + " values(?,?)";
  2. Connection conn = JDBCUtil.getConnection();
  3. PreparedStatement pstmt = JDBCUtil.getPreparedStatement(conn, sql_add);
  4.  
  5. try {
  6. pstmt.setString(1, "0");
  7. pstmt.setString(2, "q");
  8. conn.setAutoCommit(false);//若改为true 插入中遇到主键冲突还会继续插入,具体看需求
  9. pstmt.addBatch();
  10. pstmt.executeBatch();
  11. conn.commit();
  12. } catch (SQLException e) {
  13. e.printStackTrace();
  14. }finally {
  15. JDBCUtil.close(conn);
  16. JDBCUtil.close(pstmt);
  17. }

用Intellij Idea创建简单的Servlet的更多相关文章

  1. Intellij IDEA创建javaWeb以及Servlet简单实现

    1.创建web工程 File --> New --> Project...

  2. [转]Intellij idea创建javaWeb以及Servlet简单实现

    准备:1. 安装jdk1.72. 安装tomcat1.8 一.创建并设置javaweb工程 1.创建javaweb工程File --> New --> Project... 设置工程名字: ...

  3. 如何使用eclipse创建简单的servlet

    Servlet是一种基于java开发的服务器程序,可以对外公布服务,如果是浏览器应用,可以通过浏览器打开网址的方式查看服务.创建servlet要继承httpservlet,并且在web.xml中配置拦 ...

  4. 使用Intellij Idea创建简单Maven项目(转)

    我是学Java Web的,基本靠自学,在网上收集了各种视频资料,逐一的看,代码逐一的敲.学习了这么久之前一直未成想过要把自己的学习路程记录下来,在网上也看到过很多人把自己的学习历程以及遇到的问题写在了 ...

  5. 使用IntelliJ IDEA创建简单的Dubbo实例

    这个博客是在https://blog.csdn.net/Crazer_cy/article/details/80397649篇文章上的基础上,自己学习用的. Zookeeper为dubbo的注册中心, ...

  6. 使用IntelliJ IDEA创建简单的Spring Boot项目

    方法一: File - New -Project 创建结束后进行测试运行,修改代码如下: package com.springboot.testone; import org.springframew ...

  7. Intellij创建简单Springboot项目

    Intellij创建简单Springboot项目 第一步:选择创建新项目——file-new-project 第二步:选择项目类型——Spring Initializr-next 第三步:输入项目信息 ...

  8. Inellij idea创建javaWeb以及Servlet简单实现

    版权声明:本文为博主原创文章,未经博主允许不得转载. 准备:1. 安装jdk1.7 2. 安装tomcat1.8 一.创建并设置javaweb工程 1.创建javaweb工程File --> N ...

  9. Intellij idea创建javaWeb:实现JSP/Servlet(转)

    转自:https://www.jianshu.com/p/9684e90cf7b5 Intellij idea创建javaWeb:实现JSP/Servlet by_love唯念 关注 2016.12. ...

随机推荐

  1. js中鼠标滚轮事件详解

    js中鼠标滚轮事件详解   (以下内容部分内容参考了http://adomas.org/javascript-mouse-wheel/ ) 之前js 仿Photoshop鼠标滚轮控制输入框取值中已使用 ...

  2. 2、@RequestMapping注解的用法

    @RequestMapping有如下属性值:

  3. Map.putAll方法——追加另一个Map对象到当前Map集合(转)

    该方法用来追加另一个Map对象到当前Map集合对象,它会把另一个Map集合对象中的所有内容添加到当前Map集合对象. 语法  putAll(Map<? extends K,? extends V ...

  4. Ubuntu下MySQL数据库安装与配置与卸载

    安装: sudo apt-get install mysql-server mysql-client 一旦安装完成,MySQL 服务器应该自动启动.您可以在终端提示符后运行以下命令来检查 MySQL ...

  5. SecureCRT访问开发板linux系统

    前言: 最近在用OK6410开发板跑linux系统,经常在终端上敲一些指令,无奈开发板屏幕太小用起来非常不方便,所以使用终端一款能运行在windows上的软件与开发板连接,直接在电脑上操作开发板了,这 ...

  6. 服务器发布MVC常见问题解决方案

    1  问题:IIS上部署MVC网站,打开后500错误:处理程序“ExtensionlessUrlHandler-Integrated-4.0”在其模块列表中有一个错误模块“ManagedPipelin ...

  7. BZOJ2229: [Zjoi2011]最小割

    题解: 真是一道神题!!! 大家还是围观JZP的题解吧(网址找不到了...) 代码: #include<cstdio> #include<cstdlib> #include&l ...

  8. snv的绑定,检出,同步

    svn安装  http://www.android100.org/html/201511/15/196792.html svn绑定Studio 显示svn图标 效果图

  9. Android实现全屏显示的方法

    一种是在xml文件中设置相应属性,另一种是用代码实现. 1.在AndroidManifest.xml的配置文件里面的<activity>标签添加属性: android:theme=&quo ...

  10. LeetCode Reverse Linked List (反置链表)

    题意: 将单恋表反转. 思路: 两种方法:迭代和递归. 递归 /** * Definition for singly-linked list. * struct ListNode { * int va ...