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方法。
- 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的配置:
- <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>UserListServletservlet-name>
- <servlet-class>com.dawn.javaweb.GetComputerInfoservlet-class>
- servlet>
-
- <servlet-mapping>
- <servlet-name>UserListServletservlet-name>
- <url-pattern>/servlet01/dawn01url-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();
- %>
⑶、编写前端测试脚本:
- html>
- <html>
- <head>
- <meta charset="utf-8">
- <title>123title>
- <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+"
"; - }
- });
- }
-
- 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+"
"; - }
- });
- }
- script>
- body>
- html>
点击运行即可。
在前端页面中,输出的都是对象,按下F12即可看到返回的JSON的详细数据了。
唯一遗憾的是,下个月这个IDEA就过期了。