Ich begann zu Beginn des Apache Tomcat-Projekts mit der Programmierung meiner eigenen Web-Anwendungen. Wenn ich also ein Servlet schreibe, das mit einem kleinen Stück JSON auf GET oder POST antwortet, sieht mein Code so ähnlich aus:Was entspricht einem Servlet (Java-Klasse, die HttpServlet in Tomcat erweitert) in einem ASP.net-Projekt?
package com.stackoverflow.question;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.*;
import org.json.*;
public class SimpleServlet_json extends HttpServlet {
private static final long serialVersionUID = 1L;
public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
request.setCharacterEncoding("UTF-8");
JSONObject json = new JSONObject();
try {
json.put("Success", true);
json.put("Name", request.getParameter("name"));
} catch (JSONException e) {}
response.setContentType("application/json");
response.getOutputStream().print(json.toString());
}
}
Meine Frage ist "Was ist die äquivalente Methode/Design/New Item für ASP.net?"
Ich habe diese als WebForms geschrieben, die wie folgt aussehen:
Zuerst wird die (im Grunde leer) .aspx
Datei:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="SimpleServlet_json.aspx.cs" Inherits="com.stackoverflow.question.SimpleServlet_json" %>
Dann ist diese .cs
Datei:
namespace com.stackoverflow.question
{
public partial class SimpleServlet_json : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
var json = new JSONResponse()
{
Success = Request.QueryString["name"] != null,
Name = Request.QueryString["name"]
};
Response.ContentType = "application/json";
Response.Write(JsonConvert.SerializeObject(json));
}
}
[Serializable]
class JSONResponse
{
public string Name { get; set; }
public bool Success { get; set; }
}
}
Aber Ich mache mir im Geheimen Sorgen, dass ich meine Mitschüler dazu bringe, einen nicht intuitiven Stil anzunehmen.
Diese Beispiele sind eher erfunden, in der Praxis werden sie als JSON-Darstellung einer Datenbankeinheit verwendet. Für ein Beispiel ist die URL example.com/product/1
die HTML-Version (mit einer der URL zugeordneten JSP- oder ASPx-Seite), während example.com/product/1.json
die JSON-Darstellung (mit einer dieser Klassen) ist. Ich bin ein Fan von URL Rewriting.
Fühlen Sie sich frei in Horror zu keuchen und sagen Sie mir, wenn was ich wirklich frage ist "Wie kann ich schreiben schlecht gestaltete Java in C# weiter" –
Asp.Net/MVC ist * weit *, * weit *, besser geeignet zu tun was Sie versuchen, als WebForms zu tun. Sie erhalten einen Methodenendpunkt für jedes "Servlet" (in MVC werden sie als Aktionen bezeichnet) und ermöglichen es Ihnen, programmatisch anzugeben, welche Art von Antwort zurückgegeben werden soll (Text, HTML, JSON usw.). –