• 使用IntelliJ IDEA进行Java的web程序开发(Servlet和Jsp)


      IntelliJ IDEA庞大又复杂,正版需要149美金。作为Java小白,我也就只是开发一般的Java应用,根本也用不上它的那些功能。我就炒个简版的酸辣土豆丝,可你却给我安利了个准备做满汉全席的高端厨房,这叫我如何是好?!

      看了网上做Java开发的,绝大部分都在使用IDEA,没有办法也只能下载下来学习使用,工欲善其事,必先利其器,磨刀还是不误砍柴工的。

      下面整理使用IntelliJ IDEA2022版本进行Java的web程序开发的详细步骤。

      这里是从官网上下载的正版,试用版,下个月就过期,这个比较遗憾。

      第一步:建立新的空项目。

      建立新的空项目后再逐一配置好IntelliJ IDEA所需要的编辑、编译、运行的环境即可。

       第二步:建立新的普通Java模块。

       第三步:为该模块添加Web应用的框架支持。

      在该模块上点击右键,选择“添加框架支持...”。

      现在,该模块下多出了web目录,这也是该项目的Web应用的根目录。

      第四步:在web目录下新建lib目录,将开发程序需要用到的jar包添加到该目录下。

      这是为了以后发行程序用到的,现在作为测试开发不发行可以不做,只添加引用也可以。

      第五步:为项目添加引用。

      在file(文件) -> Project Structure(项目结构) -> Module(模块)中添加引用。

     

       如果用到了json,需要添加json.jar包。

      第六步:添加Tomcat服务器。

      就是为IDEA配置Web服务器,这样可以一体化地进行程序的编写与运行调试。

      添加部署,就是运行web程序的配置。 

      第七步:编写程序。 

      因为Java只做后台开发,那么就测试编写在Servlet和JSP中返回JSON格式的数据。

      ⑴ 添加实现Servlet的方法,主要是service方法。

    1. package com.dawn.javaweb;
    2. import org.json.JSONArray;
    3. import org.json.JSONException;
    4. import org.json.JSONObject;
    5. import javax.servlet.*;
    6. import java.io.IOException;
    7. import java.io.PrintWriter;
    8. import java.sql.*;
    9. public class GetComputerInfo implements Servlet{
    10. @Override
    11. public void init(ServletConfig servletConfig) throws ServletException {
    12. System.out.println("Servlet访问MS SQL Server 2014数据库并返回Json格式数据");
    13. }
    14. @Override
    15. public ServletConfig getServletConfig() {
    16. return null;
    17. }
    18. @Override
    19. public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
    20. Connection DBConn=null;
    21. Statement Stmt=null;
    22. ResultSet RS=null;
    23. try {
    24. //1.注册连接数据库的驱动程序
    25. Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
    26. //2.定义连接数据库的属性
    27. String url="jdbc:sqlserver://XX.XX.XX.XX:1433;DataBase=YYYY";
    28. String username="sa";
    29. String password="ZZZZ";
    30. //3.连接数据库
    31. DBConn= DriverManager.getConnection(url,username,password);
    32. //4.定义SQL语句
    33. String StrSql="select * from MM";
    34. //5.获取执行sql语句的statement
    35. Stmt=DBConn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
    36. //6.执行sql并返回结果集
    37. RS=Stmt.executeQuery(StrSql);
    38. //7.处理结果
    39. JSONArray ReturnJson=new JSONArray();
    40. while( RS.next() ){
    41. JSONObject JsonTmp=new JSONObject();
    42. JsonTmp.put("c01",RS.getString(1));
    43. JsonTmp.put("c02",RS.getString(2));
    44. JsonTmp.put("c03",RS.getString(3));
    45. JsonTmp.put("c04",RS.getString(4));
    46. JsonTmp.put("c05",RS.getString(5));
    47. ReturnJson.put(JsonTmp);
    48. }
    49. servletResponse.setContentType("text/json; charset=UTF-8");
    50. PrintWriter JSPReturn=servletResponse.getWriter();
    51. JSPReturn.write(ReturnJson.toString());
    52. //8.释放资源
    53. Stmt.close();
    54. DBConn.close();
    55. } catch (ClassNotFoundException | SQLException | JSONException e) {
    56. throw new RuntimeException(e);
    57. }
    58. }
    59. @Override
    60. public String getServletInfo() {
    61. return null;
    62. }
    63. @Override
    64. public void destroy() {
    65. }
    66. }

      注意这里返回的是Json格式的数据。

      web.xml的配置:

    1. <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
    2. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    3. xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
    4. version="4.0">
    5. <servlet>
    6. <servlet-name>UserListServletservlet-name>
    7. <servlet-class>com.dawn.javaweb.GetComputerInfoservlet-class>
    8. servlet>
    9. <servlet-mapping>
    10. <servlet-name>UserListServletservlet-name>
    11. <url-pattern>/servlet01/dawn01url-pattern>
    12. servlet-mapping>
    13. web-app>

      ⑵、编写JSP脚本:

    1. <%@ page import="java.sql.Connection" %>
    2. <%@ page import="java.sql.Statement" %>
    3. <%@ page import="java.sql.ResultSet" %>
    4. <%@ page import="org.json.JSONArray" %>
    5. <%@ page import="org.json.JSONObject" %>
    6. <%@ page import="java.io.PrintWriter" %>
    7. <%@ page session="false" pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" language="java" errorPage="error.jsp" %>
    8. <%-- 访问MS SQL Server 2014 数据库并返回JSON格式的数据 --%>
    9. <%@ page import="java.sql.*" %>
    10. <%
    11. System.out.println("Java的JSP访问MS SQL Server 2014数据");
    12. //1.定义变量
    13. Connection DBConn=null;
    14. Statement Stmt=null;
    15. ResultSet RS=null;
    16. String StrSql;
    17. //2.定义连接数据库的属性
    18. String driverName="com.microsoft.sqlserver.jdbc.SQLServerDriver";
    19. String url="jdbc:sqlserver://XX.XX.XX.XX:1433;DataBase=YYYY";
    20. String username="sa";
    21. String password="ZZZZ";
    22. //3.注册连接数据库的驱动程序
    23. Class.forName(driverName);
    24. //4.连接数据库
    25. DBConn= DriverManager.getConnection(url,username,password);
    26. Stmt=DBConn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
    27. //4.定义SQL语句
    28. StrSql = "select * from MMMM";
    29. //5.执行sql并返回结果集
    30. RS=Stmt.executeQuery(StrSql);
    31. //7.处理结果
    32. JSONArray ReturnJson=new JSONArray();
    33. while( RS.next() ){
    34. JSONObject JsonTmp=new JSONObject();
    35. JsonTmp.put("c01",RS.getString(1));
    36. JsonTmp.put("c02",RS.getString(2));
    37. JsonTmp.put("c03",RS.getString(3));
    38. JsonTmp.put("c04",RS.getString(4));
    39. JsonTmp.put("c05",RS.getString(5));
    40. ReturnJson.put(JsonTmp);
    41. }
    42. response.setContentType("application/json");
    43. response.setCharacterEncoding("UTF-8");
    44. response.setHeader("Cache-Control", "no-cache");
    45. PrintWriter JSPReturn=response.getWriter();
    46. JSPReturn.write(ReturnJson.toString());
    47. RS.close();
    48. Stmt.close();
    49. DBConn.close();
    50. %>

      ⑶、编写前端测试脚本:

    1. html>
    2. <html>
    3. <head>
    4. <meta charset="utf-8">
    5. <title>123title>
    6. <script src="jquery-3.4.1.min.js">script>
    7. head>
    8. <body>
    9. <button onclick="GetData()">从Servlet中得到JSON数据button>
    10. <br>
    11. <button onclick="GetData111()">从JSP中得到JSON数据button>
    12. <div id="demo">div>
    13. <div id="demo111">div>
    14. <script>
    15. function GetData(){
    16. $.ajax({
    17. url: 'http://localhost:9019/WebDemo/servlet01/dawn01',
    18. dataType: "JSON",
    19. async: true,
    20. data:{
    21. name:"QWE",
    22. age:13
    23. },
    24. type: "POST",
    25. beforeSend:function(){},
    26. success: function(data) {
    27. console.log(data);
    28. document.getElementById("demo").innerHTML = document.getElementById("demo").innerHTML + data+"
      "
      ;
    29. }
    30. });
    31. }
    32. function GetData111(){
    33. $.ajax({
    34. url: 'http://localhost:9019/WebDemo/PJson.jsp',
    35. dataType: "JSON",
    36. async: true,
    37. data:{
    38. name:"QWE",
    39. age:13
    40. },
    41. type: "POST",
    42. beforeSend:function(){},
    43. success: function(data) {
    44. console.log(data);
    45. document.getElementById("demo111").innerHTML = document.getElementById("demo111").innerHTML + data+"
      "
      ;
    46. }
    47. });
    48. }
    49. script>
    50. body>
    51. html>

      点击运行即可。

      在前端页面中,输出的都是对象,按下F12即可看到返回的JSON的详细数据了。

      唯一遗憾的是,下个月这个IDEA就过期了。

  • 相关阅读:
    Prompts(一)
    CSAPP深入理解计算机系统-笔记1
    大二Web课程设计 HTML+CSS制作苹果商城网站 Apple商城 8个页面
    ubuntu 20.04 A10配置deepstream6.1.1环境(dGPU)
    RK3568 kernel阶段播放开机动画方案实现
    简单讲讲在一台机器上用docker部署hadoop HDFS
    二叉树与堆
    三极管开关电路参数设计与参数介绍
    语言基础篇12——Python有哪些异常,优雅的处理异常
    PHP:prim普里姆算法(附完整源码)
  • 原文地址:https://blog.csdn.net/dawn0718/article/details/126056337