Implementación del módulo de gestión WEBGIS

Otros módulos de funciones de gestión del sistema también son módulos de funciones auxiliares relacionados con el sistema, que incluyen principalmente funciones de gestión de usuarios e importación de lotes de datos.
Hay muchos lenguajes de desarrollo en el fondo. En la etapa inicial del desarrollo de la red, la tecnología CGI se puede usar para lograr efectos dinámicos. Se puede usar el lenguaje C. Ahora hay PHP, Java, Asp. Net, Ruby, Go, etc., e incluso el trabajo original en JavaScript en el lado del navegador se movió al lado del servidor y se llamó Node.js.
Lo que debe recordarse es que hay demasiados tipos de lenguajes, y este número aún puede cambiar en el futuro. Si desea convertirse en un excelente desarrollador, no debe estar limitado por el lenguaje, sino que debe prestar más atención a la ideas y esencia del problema de implementación.

1. Gestión de usuarios

El sistema de gestión de tuberías eléctricas subterráneas urbanas permite a los administradores de la red eléctrica ingresar al sistema para administrar la red de tuberías eléctricas urbanas. Cuando
el usuario ingresa el nombre de usuario y la contraseña correctos, ingresará a la página principal del sistema y cargará los diversos módulos funcionales del sistema. El sistema
proporciona funciones comunes de administración de usuarios, como agregar usuarios, ver usuarios y cambiar contraseñas, y solo los usuarios administradores tienen
la autoridad para agregar y eliminar usuarios comunes.

1) Página de registro

Verifique estrictamente el contenido del formulario durante la operación segura de registro e inicio de sesión para mejorar la seguridad del sitio web y evitar que usuarios ilegales
ingresen al sitio web. La página de registro en este sistema es addUser.jsp, por ejemplo,
inserte la descripción de la imagen aquí
el código clave para realizar la página del formulario de registro es el siguiente:

< s: include value =”commonMenu.jsp”><Is: include>
<div class =” clear”></div>
<div class =” system_box”>
< s: form action =”addUser” theme =” simple" meth 。d ="post "四ctype =”multipart/form - data”>
< table class =” system - table ”>
<tr>< th colspan =” 2 ”〉账户基本信息(必填)</th></tr>
<tr>
< td width =” 80px ”〉登录名警</ td>
< td width z ” 340px”>
< s : textf ield theme =” simple ” n四e =” user . userName ” cssClass =” stri290 ”
reqiured =true” value =””/>
</td>
</tr>
<tr>
< td width g ” 80px”〉用户密码祷</td>
< td width =340px”>
< s : password theme =” simple" name =” user . userPassword ” cssClass =” psdi290 ”
value =””/>
</td>
</tr>
<tr>
< td width =” BOpx ">用户组别铃</ td>
< td width =340px”>
< selectclass =”selectl” name =”user.userLevel ”>
<option value =”。”〉超级管理员</ option>
<option value =” 1 ”〉管理员</ option>
<option value z ” 2 ” select回〉普通用户</ option>
</select ></td >
</tr>
< tr>< th colspan =” 2 ”〉用户个人信息(选填)</th></tr>
<tr>
< td width =” BOpx ”〉真实姓名</td>
< td width =340px”>
< s: textfield theme =” simple ” name =” user. userRealName" cssClass =”
stri290” value =··”/>
</td>
</tr>
<tr>
< td width =” 80px”〉手机号</td>
< td width =340px">
< s : textf ield theme =” simple" name =” user . userMobile" cssClass =” stri290 ”
value =””/>
</td>
</tr>
<tr>

2) Página de inicio de sesión

El sistema de administración de tuberías eléctricas subterráneas urbanas permite que el personal de administración de la red eléctrica ingrese al sistema para administrar la red de tuberías eléctricas urbanas. La Figura 7.4-21 es la
interfaz de inicio de sesión del usuario, que también es la página de inicio predeterminada del sistema. El sistema de inicio de sesión debe verificar si el nombre de usuario y la contraseña ingresados ​​por el usuario son correctos. Si el nombre de usuario y la contraseña son correctos, ingresarán al sistema. Si el código está
incompleto, se le dará un aviso correspondiente. El proceso de verificación de todo el proceso de inicio de sesión es
inserte la descripción de la imagen aquí
inserte la descripción de la imagen aquí
como se muestra en la figura. El inicio de sesión guarda la información del usuario que ha iniciado sesión, y el inicio de sesión en segundo plano guarda la información básica del administrador que inicia sesión en el sistema. Los códigos de la página de inicio de sesión de primer plano y de fondo son los mismos. Tomando la página de inicio de sesión de primer plano como ejemplo, los códigos clave son los siguientes:

< s: form action z ” login” method =” post” enctype =”multipart/form - data”>
< inputname =”mode ” type =” hidden” value z ” check”>
< s : textf ield label z ”用户名” name =” name ” cssClass =”str”/>
< s : password l由el =”密码” name z ” password ”/>
< s : submit value =”登录”/〉
</s: form>

Verificar al iniciar sesión

En el proceso, el nombre de usuario y la contraseña obtenidos en la página se utilizan como condiciones de consulta para encontrar la información del usuario que coincida con las condiciones en la tabla de información del usuario. Si el conjunto de resultados de ida y vuelta no está vacío, significa que la verificación está aprobado; de lo contrario, falla. El código clave del método de verificación de inicio de sesión de front-end es el siguiente:

public class loginAction extends ActionSupport {
    
    
private String mode;
private String name;
private String password ;
private loginService loginService;
public String execute() throws Exception {
    
    
if(mode.equals(” login”)){
    
    
return mode;
//注销登录
if(mode.equals (” loginout”)){
    
    
Mapsession = ActionContext. getContext(). getSession();
session.remove(”user Info);
return ” loginout'’ J
//登录检查
if(mode.equals (”check”)){
    
    
if(name.equals (””)){
    
    
addFieldError (” name”,”请填写用户名”);
return INPUT;
if(password equals (川’)){
addFieldError (” password ”,”请填写密码”);
return INPUT;
intflagLogin = - 1;
flagLogin = loginService. checkAccount(name ,归ssword ) ;
switch( flagLogin) {
    
    
caseO:addFieldError (飞回E”,”用户名不存在”);
case - 1 : addFieldError (” password ”,”密码错误”);
if(hasErrors()){
    
    
return INPUT;
} else {
    
    
Mapsession = ActionContext. getContext() . getSessio叫);
session. put (”user Info, loginService . getUserinfo());
return SUCCESS;
return SUCCESS;

2. Importación por lotes de datos

La función de importación de datos por lotes importa la información de atributos del equipo de la red de tuberías de energía en lotes en forma de archivos de Excel, lo que evita de manera efectiva los problemas de confiabilidad y baja eficiencia causados ​​por la entrada manual de datos del equipo. Debido a la coherencia de los atributos del sistema y la base de datos espacial, el módulo de importación por lotes aumentará los registros correspondientes de la base de datos espacial cuando se importe la base de datos de atributos. El diagrama de tiempo del módulo de importación de lotes de datos se muestra en la figura, y el archivo front-end se carga en el servidor a través de uploadExcelAction del servicio de lógica empresarial. importExcelService usa la biblioteca de clases jxl para analizar los registros en el archivo de Excel y guardarlos en la base de datos espacial y de atributos a través de la interfaz DAO.

inserte la descripción de la imagen aquí

< s: include value =” cornrnonMenu.jsp”><Is: include>
<div class =” clear”></div>
<div class =” systern_ box”>
< s : form action =” uploadsExcel ” cssClass =” system - table ” rneth od z ” post" enc type =”
rnultipart/forrn - data”>
<tr>
< s: f ilelabel =”导人文件” name= "upFile” cssClass = 飞290 ”></ s :file>
< s:token />
<tr>
< td class =” td Label ">文件类型</td>
<td>
< select name =” type” class =” i290selectl”>
<option value =气urv町、测绘层</option>
<option value =” well ”〉电缆井</ option>
<option value -丁oint ”〉电缆接头</ option>
<option value = ” wire ”〉电缆段</ option>
<option value =” r四a ind er ”〉电缆盘余</ option>
<option value =” ele ”〉电气设备</option>
</select>
</td>
</tr>
< s: subrnitvalue

La función de importación utiliza algunas clases de entidad, el siguiente es el código clave de implementación:

private FileupFile;
private SurveyDatalmport import Dao;
private ContainerDatalmport import DaoEle;
private Wirecablelmport import DaoWirecable;
pri vate InsertObjectByFileimport DaoObj;
private intcountFinish;
private intcountAll;
private List< String> err Info;
public import ExcelService() {
    
    
public intimport Excel(String type){
    
    
if( type.equals (” survey”)){
    
    
return import Survey( ) ;
/ 椅
} elseif(type. equals (” well”)){
    
    
import Well ( ) ;
return 1;
} elseif(type. equals (” joint”)){
    
    
import Joint();
return 1;
} elseif(type.equals (”wire”)){
    
    
import Wirecable();
return 1;
} elseif(type. equals (” remainder”)){
    
    
import Remainder();
return 1;
} elseif(type.equals (” ele”)){
    
    
import Ele();
return l;
return 1;
骨导人测绘层
铃/
p由lie int import Survey( ) {
    
    
try{
    
    7章城市地下电力管线GIS 系统|’ 327
intres = import Dao. surveyDatalmport ( upFile);
if(res != - 1) {
    
    
countFinish = import Dao. getCountFinish();
countAll = import Dao. getCountAll();
errlnfo = import Dao. getErrlnfo( ) ;
return res,
}catch(Exceptione){
    
    
return - 1;
public void import Ele() {
    
    
try{
    
    
/养
import DaoEle. containerDataimport ( upFile);
countFinish = import DaoEle. getNumimport ed();
countAll = import DaoEle. getNumSum();
errinfo = import DaoEle. getErrinfo();
}catch(Exceptione) {
    
    
提导人电缆段
祷/
p由lie void import Wirecable() {
    
    
try{
    
    
import DaoWirecable. wirecableimport ( upFile);
countFinish = import DaoWirecable . getCountFinish();
count且11 = import DaoWirecable. getCountAll();
errinfo = import DaoWirecable. getErrinfo();
}catch(Exceptione){
    
    
//return - 1;
/ 铸
祷导人工井
祷/
p由lie void import Well ( ) {
    
    
try{
    
    
/婪
import DaoObj. insertObjectByFile ( upFile, newFile ( ServletActionContext.
getServletContext(). getRealPath (”叮+”\\阳B - INF\ \ classes\ \ org \ \ resource\ \
excelXML\\PdEwPtWell.xml”));
countFinish = import DaoObj. getCountFinish();
countAll = import DaoO坷, getCountAll ( ) ;
errinfo = import DaoObj getErrinfo();
}catch(Exceptione) {
    
    
e.pri时StackTrace( ) ;

public void import Joint() {
    
    
try{
    
    

import DaoObj. insertObjectByFile ( upFile, newFile ( ServletActionContext.
getServletContext( ) getRealPath (””)+”\\阳B INF\ \ classes\ \ org \ \ resource\ \
excelXML\\
PdElCnintermediateJoint.xml”)),
countFinish = import DaoO坷, getCountFinish();
countAll = import DaoObj. getCountAll ( ) ;
err Info= import DaoObj. getErrinfo();
}catch(Exceptione){
    
    
e . printStackTrace();

public void import Remainder() {
    
    
try{
    
    
import DaoObj. insertOb] ectByFile ( upFile, newFile ( ServletActionContext.
getServletContext( ) getRealPath (川)+”\\ WEB - INF\\ classes\\ org \\resource\\
excelXML\\
PdElCnCabledrumRemainder.xml ”)),
countFinish = import DaoObj. getCountFinish();
countAll = import DaoObj . getCountAll ( ) ;
err Info= import DaoObj . getErrinfo();
}catch(Exceptione){
    
    
e. printStackTrace();

Supongo que te gusta

Origin blog.csdn.net/leva345/article/details/131381334
Recomendado
Clasificación