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

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

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

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

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

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

idea进行java gui开发 intellij idea java开发_java

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

idea进行java gui开发 intellij idea java开发_servlet_02

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

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

idea进行java gui开发 intellij idea java开发_idea进行java gui开发_03

idea进行java gui开发 intellij idea java开发_jsp_04

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

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

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

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

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

idea进行java gui开发 intellij idea java开发_servlet_05

 

idea进行java gui开发 intellij idea java开发_intellij-idea_06

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

  第六步:添加Tomcat服务器。

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

idea进行java gui开发 intellij idea java开发_jsp_07

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

idea进行java gui开发 intellij idea java开发_idea进行java gui开发_08

  第七步:编写程序。 

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

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

package com.dawn.javaweb;

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import javax.servlet.*;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.*;

public class GetComputerInfo implements Servlet{
    @Override
    public void init(ServletConfig servletConfig) throws ServletException {
        System.out.println("Servlet访问MS SQL Server 2014数据库并返回Json格式数据");
    }

    @Override
    public ServletConfig getServletConfig() {
        return null;
    }

    @Override
    public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
        Connection DBConn=null;
        Statement Stmt=null;
        ResultSet RS=null;

        try {
            //1.注册连接数据库的驱动程序
            Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
            //2.定义连接数据库的属性
            String url="jdbc:sqlserver://XX.XX.XX.XX:1433;DataBase=YYYY";
            String username="sa";
            String password="ZZZZ";
            //3.连接数据库
            DBConn= DriverManager.getConnection(url,username,password);
            //4.定义SQL语句
            String StrSql="select * from MM";
            //5.获取执行sql语句的statement
            Stmt=DBConn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
            //6.执行sql并返回结果集
            RS=Stmt.executeQuery(StrSql);
            //7.处理结果
            JSONArray ReturnJson=new JSONArray();
            while( RS.next() ){
                JSONObject JsonTmp=new JSONObject();
                JsonTmp.put("c01",RS.getString(1));
                JsonTmp.put("c02",RS.getString(2));
                JsonTmp.put("c03",RS.getString(3));
                JsonTmp.put("c04",RS.getString(4));
                JsonTmp.put("c05",RS.getString(5));
                ReturnJson.put(JsonTmp);
            }

            servletResponse.setContentType("text/json; charset=UTF-8");
            PrintWriter JSPReturn=servletResponse.getWriter();
            JSPReturn.write(ReturnJson.toString());

            //8.释放资源
            Stmt.close();
            DBConn.close();

        } catch (ClassNotFoundException | SQLException | JSONException e) {
            throw new RuntimeException(e);
        }

    }

    @Override
    public String getServletInfo() {
        return null;
    }

    @Override
    public void destroy() {

    }
}

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

  web.xml的配置:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">
    <servlet>
        <servlet-name>UserListServlet</servlet-name>
        <servlet-class>com.dawn.javaweb.GetComputerInfo</servlet-class>
    </servlet>

    <servlet-mapping>
        <servlet-name>UserListServlet</servlet-name>
        <url-pattern>/servlet01/dawn01</url-pattern>
    </servlet-mapping>

</web-app>

  ⑵、编写JSP脚本:

<%@ page import="java.sql.Connection" %>
<%@ page import="java.sql.Statement" %>
<%@ page import="java.sql.ResultSet" %>
<%@ page import="org.json.JSONArray" %>
<%@ page import="org.json.JSONObject" %>
<%@ page import="java.io.PrintWriter" %>
<%@ page session="false" pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" language="java" errorPage="error.jsp" %>
<%--  访问MS SQL Server 2014 数据库并返回JSON格式的数据 --%>

<%@ page import="java.sql.*" %>

<%
    System.out.println("Java的JSP访问MS SQL Server 2014数据");
    //1.定义变量
    Connection DBConn=null;
    Statement Stmt=null;
    ResultSet RS=null;
    String StrSql;
    //2.定义连接数据库的属性
    String driverName="com.microsoft.sqlserver.jdbc.SQLServerDriver";
    String url="jdbc:sqlserver://XX.XX.XX.XX:1433;DataBase=YYYY";
    String username="sa";
    String password="ZZZZ";
    //3.注册连接数据库的驱动程序
    Class.forName(driverName);
    //4.连接数据库
    DBConn= DriverManager.getConnection(url,username,password);
    Stmt=DBConn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
    //4.定义SQL语句
    StrSql = "select * from MMMM";
    //5.执行sql并返回结果集
    RS=Stmt.executeQuery(StrSql);
    //7.处理结果
    JSONArray ReturnJson=new JSONArray();
    while( RS.next() ){
        JSONObject JsonTmp=new JSONObject();
        JsonTmp.put("c01",RS.getString(1));
        JsonTmp.put("c02",RS.getString(2));
        JsonTmp.put("c03",RS.getString(3));
        JsonTmp.put("c04",RS.getString(4));
        JsonTmp.put("c05",RS.getString(5));
        ReturnJson.put(JsonTmp);
    }

    response.setContentType("application/json");
    response.setCharacterEncoding("UTF-8");
    response.setHeader("Cache-Control", "no-cache");
    PrintWriter JSPReturn=response.getWriter();
    JSPReturn.write(ReturnJson.toString());

    RS.close();
    Stmt.close();
    DBConn.close();
%>

  ⑶、编写前端测试脚本:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>123</title>
    <script src="jquery-3.4.1.min.js"></script>
</head>

<body>
<button onclick="GetData()">从Servlet中得到JSON数据</button>
<br>
<button onclick="GetData111()">从JSP中得到JSON数据</button>
<div id="demo"></div>
<div id="demo111"></div>
<script>
    function GetData(){
        $.ajax({
            url: 'http://localhost:9019/WebDemo/servlet01/dawn01',
            dataType: "JSON",
            async: true,
            data:{
                name:"QWE",
                age:13
            },
            type: "POST",
            beforeSend:function(){},
            success: function(data) {
                console.log(data);
                document.getElementById("demo").innerHTML = document.getElementById("demo").innerHTML + data+"<br>";
            }
        });
    }

    function GetData111(){
        $.ajax({
            url: 'http://localhost:9019/WebDemo/PJson.jsp',
            dataType: "JSON",
            async: true,
            data:{
                name:"QWE",
                age:13
            },
            type: "POST",
            beforeSend:function(){},
            success: function(data) {
                console.log(data);
                document.getElementById("demo111").innerHTML = document.getElementById("demo111").innerHTML + data+"<br>";
            }
        });
    }
</script>
</body>
</html>

  点击运行即可。

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

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