搭建nutz框架实现登录登出

article/2025/8/18 0:46:00

创建web项目
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
把jar粘贴到lib目录下 全选build path
在这里插入图片描述
新建类 类名为MainModule
在这里插入图片描述
添加模块类自动扫描
在这里插入图片描述
web.xml文件 注意< display-name> 和< parm-name>标签 需要修改

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5"><display-name>nutzbook</display-name><filter><filter-name>nutz</filter-name><filter-class>org.nutz.mvc.NutFilter</filter-class><init-param><param-name>modules</param-name><param-value>net.wendal.nutzbook.MainModule</param-value></init-param></filter><filter-mapping><filter-name>nutz</filter-name><url-pattern>/*</url-pattern><!-- ForwardView需要下面的配置 @Ok("->:/xxx/yyy/zzz") --><dispatcher>REQUEST</dispatcher><dispatcher>FORWARD</dispatcher><dispatcher>INCLUDE</dispatcher></filter-mapping><welcome-file-list><welcome-file>index.html</welcome-file><welcome-file>index.htm</welcome-file><welcome-file>index.jsp</welcome-file><welcome-file>default.html</welcome-file><welcome-file>default.htm</welcome-file><welcome-file>default.jsp</welcome-file></welcome-file-list>
</web-app>

在conf里新建文件夹名叫ioc
在这里插入图片描述
在ioc文件夹新建文件dao.js
在这里插入图片描述
dao.js

var ioc = {dataSource : {type : "com.alibaba.druid.pool.DruidDataSource",events : {create : "init",depose : 'close'},fields : {url : "jdbc:mysql://127.0.0.1:3306/nutzbook",username : "root",password : "root",testWhileIdle : true, // 非常重要,预防mysql的8小时timeout问题//validationQuery : "select 1" , // Oracle的话需要改成 select 1 from dualmaxActive : 100}},dao : {type : "org.nutz.dao.impl.NutDao",args : [{refer:"dataSource"}]}
};

配置文件图片
在这里插入图片描述
打开MainModule类 把@IocBy添加进去

package net.wendal.nutzbook;import org.nutz.mvc.annotation.IocBy;
import org.nutz.mvc.annotation.Modules;
import org.nutz.mvc.ioc.provider.ComboIocProvider;@IocBy(type=ComboIocProvider.class, args={"*js", "ioc/","*anno", "net.wendal.nutzbook","*tx", // 事务拦截 aop"*async"}) // 异步执行aop
@Modules(scanPackage=true)
public class MainModule {
}

创建实体类
在这里插入图片描述

运行项目自动创建表 这里应该加上get set方法

@Table("t_user")
public class User {@Idprivate int id;@Name@Columnprivate String name;@Column("passwd")private String password;@Columnprivate String salt;@Column("ct")private Date createTime;@Column("ut")private Date updateTime;}

创建MainSetup类 注意类的位置
在这里插入图片描述
MainSetup

package net.wendal.nutzbook;import org.nutz.dao.Dao;
import org.nutz.dao.util.Daos;
import org.nutz.ioc.Ioc;
import org.nutz.mvc.NutConfig;
import org.nutz.mvc.Setup;public class MainSetup implements Setup {// 特别留意一下,是init方法,不是destroy方法!!!!!public void init(NutConfig nc) {Ioc ioc = nc.getIoc();Dao dao = ioc.get(Dao.class);// 如果没有createTablesInPackage,请检查nutz版本Daos.createTablesInPackage(dao, "net.wendal.nutzbook", false);}public void destroy(NutConfig nc) {}}

打开MainModule 写入@SetupBy
在这里插入图片描述
创建UserModule类
在这里插入图片描述
UserModule 测试 url:http://127.0.0.1:8080/nutzbook/user/count 页面返回1

package net.wendal.nutzbook.module;import net.wendal.nutzbook.bean.User;import org.nutz.dao.Dao;
import org.nutz.ioc.loader.annotation.Inject;
import org.nutz.ioc.loader.annotation.IocBean;
import org.nutz.mvc.annotation.At;
import org.nutz.mvc.annotation.Fail;
import org.nutz.mvc.annotation.Ok;@IocBean
@At("/user")
@Ok("json")
@Fail("http:500")
public class UserModule {@Injectprotected Dao dao;@Atpublic int count() {return dao.count(User.class);}}

在UserModule添加login方法 url:http://127.0.0.1:8080/nutzbook/user/login?username=admin&password=123456
返回结果true

 @Atpublic Object login(@Param("username")String name, @Param("password")String password, HttpSession session) {User user = dao.fetch(User.class, Cnd.where("name", "=", name).and("password", "=", password));if (user == null) {return false;} else {session.setAttribute("me", user.getId());return true;}}

登出功能

 @At@Ok(">>:/")public void logout(HttpSession session) {session.invalidate();}

登录页面 index.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>NutzBook demo</title>
<!-- 导入jquery -->
<script type="text/javascript" src="http://lib.sinaapp.com/js/jquery/2.0.3/jquery-2.0.3.min.js"></script>
<!-- 把user id复制到一个js变量 -->
<script type="text/javascript">var me = '<%=session.getAttribute("me") %>';var base = '${base}';$(function() {$("#login_button").click(function() {$.ajax({url : base + "/user/login",type: "POST",data:$('#loginForm').serialize(),error: function(request) {alert("Connection error");},dataType:"json",success: function(data) {alert(data);if (data == true) {alert("登陆成功");location.reload();} else {alert("登陆失败,请检查账号密码")}}});return false;});if (me != "null") {$("#login_div").hide();$("#userInfo").html("您的Id是" + me);$("#user_info_div").show();} else {$("#login_div").show();$("#user_info_div").hide();}});
</script>
</head>
<body>
<div id="login_div"><form action="#" id="loginForm" method="post">用户名 <input name="username" type="text" value="admin">密码 <input name="password" type="password" value="123456"><button id="login_button">提交</button></form>
</div>
<div id="user_info_div"><p id="userInfo"></p><a href="${base}/user/logout">登出</a>
</div>
</body>
</html>

访问url:http://127.0.0.1:8080/nutzbook/
在这里插入图片描述

点击提交登录会显示 true 登录成功


http://chatgpt.dhexx.cn/article/iYKugfQ9.shtml

相关文章

使用nutz框架,找不到入口函数,访问Url报404

案例 今天在跟着nutz框架教程去配置demo时&#xff0c;发现访问URL找不到入口函数&#xff0c;出现了Search mapping for path/user/count : NOT Action match 异常&#xff0c;据nutz文档介绍&#xff0c;找不到方法, 一般是At写错或者UserModule的package写错,导致映射不到或…

Nutz框架-- Cnd条件使用原生sql

案例 今天接到一个临时的业务需求&#xff0c;做一个简单的过滤作为临时业务需要使用一两天&#xff0c;于是想到在原有的Cnd条件上加上一个Not like 进行过滤&#xff0c;但是发现现有Cnd条件查询好像满足不了 解决方案 使用Nutz框架中的Static类来实现自定义sql与Cnd.and()拼…

对于nutz框架的学习入门级使用——配置

准备&#xff1a;eclipse&#xff0c;jdk8.0&#xff0c;tomcat8.5&#xff0c;nutz的jar包 第一步&#xff1a;新建一个项目 第二步&#xff1a;导入需要的包&#xff08;数据的jar包也会同时导入&#xff09; 第三步&#xff1a;新建一个Mainmodule的类&#xff0c;并写入如…

Nutz框架crud持久层操作指南

Nutz框架 nutz框架是一个轻量级的ssh框架&#xff0c;因为它有spring的职责&#xff0c;它又负责了hiberate的持久&#xff0c;以及struct的大servlet功能。以及提供了一系列轻便的工具&#xff0c;所以我们能很容易的只专注于业务&#xff0c;此篇在于介绍一下nutz框架持久层…

开源框架Nutz开发者访谈

Nutz是SSH的替代方案,它是一组轻便小型的框架的集合, 各个部分可以被独立使用。 Nutz 的目标是: 在力所能及的情况下,最大限度的提高Web开发人员的生产力 “是的,提高生产力是这个框架唯一的目标。 就像 Java 设计之初,考虑最多的是程序员的易用性和运行时效率的权衡, …

Nutz框架学习(一)

dao层学习 1.创建 POJO(java bean实体类) 在 Java 项目中建立一个POJO&#xff0c;比如 com.zzh.demo.Person : package com.dodoke.bean;import java.util.Date;import org.nutz.dao.entity.annotation.*;Table("t_test") // 声明了Test对象的数据表 public …

Nutz框架的简单使用

Q&#xff1a;什么是Nutz。 A&#xff1a;类似于SSH的一个框架。官网http://www.nutzam.com/ Q&#xff1a;Nutz怎么读。 A&#xff1a;读作 “纳特Z&#xff08;Z发重音&#xff09;”。Nutz 的 Nut 是因为霍金的《果壳中的宇宙》是 zozoh 最喜欢的一本书之一。 Z 是 zozoh 小…

nutz mysql 关键词_nutz框架简单入门

最近几年随着python语言的崛起&#xff0c;java在web方面被各种脚本语言诟病效率低下&#xff0c;这也是事实&#xff0c;java在运用第三方类库(框架)开发时&#xff0c;效率确实很低下。麻烦的框架整合&#xff0c;复杂的配置文件都是拦路虎&#xff0c;不过今天我要推荐的nut…

给大家推荐一个非常非常非常好用的java轻量级框架-Nutz永远滴神

或许以后再也用不到了&#xff0c;写篇文章纪念一下吧~ 前段时间离职来到了现在的新公司&#xff0c;奔向了光明的未来&#xff0c;唯一让我留恋的就是原本使用的框架—Nutz了&#xff0c;这个框架相对于现在的mybatis&#xff08;过段时间可能会“mybatis真香”&#xff09;来…

【Nutz】Nutz起步

一、Nutz 是一组轻便小型的框架集合&#xff0c;可以极大程度上提高开发人员的生产力&#xff0c;更多内容请点击访问Nutz官网。Nutz主要包括以下几个模块&#xff1a; DAO&#xff1a;针对JDBC进行了薄封装&#xff0c;事务模板&#xff0c;无缓存IoC&#xff1a;JSON风格配…

【工具】——远程协助(向日葵)

在烈日炎炎的午后&#xff0c;一片片金黄金黄的田野中&#xff0c;要是能够看到上图这样的风景&#xff0c;那是多么的赏心悦目啊 &#xff0c;并且身旁有佳人&#xff0c;那是何等的荣幸之至。当然&#xff0c;今天的主体就是向日葵&#xff0c;一个远在千里却近乎咫尺之间的桌…

Windows系统自带远程桌面和远程协助怎么连接?

随着IT技术的发展和远程办公的兴起&#xff0c;在日常工作中&#xff0c;远程桌面和远程协助等功能已经成为很多用户需要掌握的技能之一。而对于使用Windows系统的用户来说&#xff0c;Windows系统自带的远程桌面和远程协助功能&#xff0c;更是令人欣喜的利器。下面我们就来一…

Windows实用小工具–Windows远程协助

在企业里&#xff0c;有的公司办公区域比较大&#xff0c;电脑有问题一般都是通过远程、徒步、电话等方式来解决&#xff0c;对于远程协助解决问题&#xff0c;我们首先想到的会是如何连接对方的电脑&#xff0c;相信大家都已经使用过很多的软件了吧&#xff01;当然还有Micros…

远程协助软件

向日葵 https://sunlogin.oray.com/ anydesk https://anydesk.com/zhs/downloads/windows?dvwin_exe ToDesk https://www.todesk.com/ 快速助手 中文&#xff1a;https://learn.microsoft.com/zh-cn/windows/client-management/quick-assist 英文&#xff1a;https://l…

常见的远程协助软件简介

1.RayLink远程控制软件 RayLink是一个支持多系统多设备间相互远程控制的软件&#xff0c;是具有远程制作、远程办公、远程游戏、远程协助等需求的IT技术、游戏玩家、网络办公等这些人的最佳选择。通过使用RayLink&#xff0c;可随时随地远程控制其他电脑或手机&#xff0c;远程…

9款免费的Windows远程协助软件

首先,如果网友和你在同一个局域网中你可以使用的就是Windows 的远程桌面功能。如果你不在局域网中,并且只有一个Internet 连接。你可以通过其他的远程协助软件从互联网中得到网友的帮助。这里我们列出九款免费的Windows远程协助软件。 1。 Team Viewer:TeamViewer是一个既简…

windows 域环境应用---VNC远程协助工具的使用

域环境中&#xff0c;少不了远程协助工具&#xff0c;这可以替管理员省掉许多跑腿的事。<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /> 今天我就介绍一下远程协助工具中的一款 real VNC. 此工具有三个软件&#xff0c; vnc se…

远程协助软件的使用

目录&#xff1a; 一、TeamViewer 二、QQ远程协助 三、向日葵 四、Todesk 1、TeamViewer 下载地址&#xff1a;下载 Windows 版 TeamViewer&#xff0c;即可实现远程桌面访问和协作立即下载 TeamViewer&#xff0c;连接远程桌面&#xff0c;为在线会议和视频会议提供远程支…

Teamviewer:支持 Linux 的远程协助工具

Teamviewer&#xff1a;支持 Linux 的远程协助工具 # 作者: riku /本文采用 CC BY-NC-SA 2.5协议授权&#xff0c;转载请注明 本文链接。 在 Linux 上的 GUI 环境下&#xff0c;我们通常都用 VNC 来进行远程摇控及协助操作。Teamviewer 则是一款类似于 VNC 的远程遥控软件&a…

远程协助工具Teamview的无人值守使用

人&#xff0c;天性喜欢懒惰&#xff0c;一旦有机会就依赖上这样的生活习惯。当你体验过&#xff0c;没有鼠标&#xff0c;没有键盘的繁琐工作后&#xff0c;发现如果有鼠标键盘那是一件多么爽快的事情&#xff0c;当你想到不用到外面每天都跑&#xff0c;一个小问题&#xff0…