【发布时间】:2021-06-01 18:05:40
【问题描述】:
我最近开始了一份新工作,我正在使用现有的程序并在以前的程序的基础上创建新的程序。 医院的 IT 团队很小,所以看起来真的很自制(在我到达那里之前他们没有版本控制工具)。
这些 servlet 正在工作,但在正确编码方面不是最先进的。例如它不是 MVC,HTML 部分在主类中。只需根据标准显示来自数据库的结果就足够了。
现在我需要管理一个数据库:显示结果、添加新行、编辑行。 我很确定这是一个常见的需求,我应该能够找到一些教程或示例,但我没有。
MYTABLE
[id_config] [int] NULL,
[label] [varchar](150) NULL,
[activ] [int] NULL
有人可以帮我吗? 我现在应该使用 JSON(我认为)。问题是,我没有太多时间,所以我正在寻找一些非常简单(就我的需求而言)和直截了当的东西。
这是我们其中一个 servlet 的示例
import java.io.*;
import java.util.*;
import java.sql.*;
import javax.servlet.*;
import javax.servlet.http.*;
import com.microsoft.sqlserver.jdbc.*;
import java.net.*;
import java.lang.Runtime;
import java.text.DateFormat;
import java.text.SimpleDateFormat ;
import java.time.Period;
import java.time.ZoneId;
import java.text.ParseException ;
public class monServletConfig extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException
{
doPost(request, response) ;
}
public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException
{
// Connexion BDD
GenerePageConfig (connexionBDD)
}
private void GenerePageConfig (HttpServletRequest request, HttpServletResponse response, Connection connexionBDD) throws Exception
{
id_config= request.getParameter("id_config");
libelle = request.getParameter("libelle");
actif= request.getParameter("actif");
if(bouton_valid==null)
bouton_valid="";
// HTML page creation (not great right ?)
System.out.println("Debut HTML");
out.println("<html><head>");
out.println("<meta http-equiv='Content-type' content='text/html; charset=UTF-8'>");
out.println("<meta name='viewport' content='width=device-width,initial-scale=1,user-scalable=no'>");
out.println("<title>"+InfoGenerales+"</title>");
out.println("<link rel='stylesheet' type='text/css' href='Formulaire.css'>");
out.println("<link rel='stylesheet' type='text/css' href='https://datatables.net/media/css/site-examples.css?_=0db1cd38700c0cfcdc140c39a2ebc306'>");
out.println("<link rel='stylesheet' type='text/css' href='https://cdn.datatables.net/1.10.21/css/jquery.dataTables.min.css'>");
out.println("<link rel='stylesheet' type='text/css' href='https://cdn.datatables.net/buttons/1.6.2/css/buttons.dataTables.min.css'>");
out.println("<link rel='alternate' type='application/rss+xml' title='RSS 2.0' href='http://www.datatables.net/rss.xml'>");
out.println("<script type=\"text/javascript\" src=\"../calendarDateInput.js\"></script>");
out.println("<script type='text/javascript' language='javascript' src='https://code.jquery.com/jquery-3.5.1.js'></script>");
out.println("<script type='text/javascript' language='javascript' src='https://cdn.datatables.net/1.10.21/js/jquery.dataTables.min.js'></script>");
out.println("<script type='text/javascript' language='javascript' src='https://cdn.datatables.net/buttons/1.6.2/js/dataTables.buttons.min.js'></script>");
out.println("<script type='text/javascript' language='javascript' src='https://cdn.datatables.net/buttons/1.6.2/js/buttons.flash.min.js'></script>");
out.println("<script type='text/javascript' language='javascript' src='https://cdnjs.cloudflare.com/ajax/libs/jszip/3.1.3/jszip.min.js'></script>");
out.println("<script type='text/javascript' language='javascript' src='https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.53/pdfmake.min.js'></script>");
out.println("<script type='text/javascript' language='javascript' src='https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.53/vfs_fonts.js'></script>");
out.println("<script type='text/javascript' language='javascript' src='https://cdn.datatables.net/buttons/1.6.2/js/buttons.html5.min.js'></script>");
out.println("<script type='text/javascript' language='javascript' src='https://cdn.datatables.net/buttons/1.6.2/js/buttons.print.min.js'></script>");
out.println("<script type='text/javascript' language='javascript' src='https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.8.4/moment.min.js'></script>");
out.println("<script type='text/javascript' language='javascript' src='https://cdn.datatables.net/plug-ins/1.10.19/sorting/datetime-moment.js'></script>");
//paramétrage data tables
// la ligne datatable.moment doit correspondre au format de la date dans la tableau pour pouvoir trier dessus.
out.println("<script type='text/javascript' class='init'> $(document).ready(function() { ");
out.println("$.fn.dataTable.moment('DD/MM/YYYY');");
out.println("$('#tab_recap').DataTable( {");
out.println("dom: 'Bfrtip',");
out.println("paging: false,");
out.println("order: [[ 5, 'asc' ]], "); // Indique la colonne qui sera triée par défaut
out.println("buttons: ['copy', 'csv', 'excel', 'pdf', 'print'],");
out.println("'language': { 'url': 'https://cdn.datatables.net/plug-ins/a5734b29083/i18n/French.json' } ");
out.println(" } ); ");
out.println(" } ); </script>");
out.println("</head>");
out.println("<body >");
// zone de recherche
out.println("<fieldset>");
out.println("<div id='exForm'><form id='idform' method=post>");
out.println("<label for='libelle '>libelle </label> <input id ='libelle ' type='text' name='libelle '><br>");
out.println("</fieldset>");
out.println("<input type='submit' class='button' value=\'Rechercher\' name=\'bouton_valid\'>");
out.println("</form> </div>");
if(!bouton_valid.equals("Rechercher")||libelle .equals(""))
{
// message
}
else
{
// DB request then storage in a tab:
for(cptCol = 0; cptCol < nombreColonnes; cptCol++)
{
out.println("<th>"+tab[0][cptCol]+"</th>");
}
out.println("</tr>");
out.println("</thead>");
out.println("<tbody>");
for (int i = 1; i <= maxtab; i++) // parcours des lignes
{
out.println("<tr>");
for(cptCol = 0; cptCol < nombreColonnes; cptCol++)
{
out.println("<td>" + tab[i][cptCol] + "</td>");//lit
}
out.println("</tr>");
}
out.println("</tbody>");
out.println("</table>");
out.println("<br>");
}
}
}
我真的希望有人可以帮助我。
【问题讨论】:
标签: java json sql-server tomcat servlets